{"version":3,"sources":["webpack:///./node_modules/ngx-owl-carousel-o/fesm5/ngx-owl-carousel-o.js","webpack:///./src/app/pages/home/components/landing-page/landing-page.component.css","webpack:///./src/app/pages/home/components/landing-page/landing-page.component.html","webpack:///./src/app/pages/home/components/landing-page/landing-page.component.ts","webpack:///./src/app/pages/home/home-routing.module.ts","webpack:///./src/app/pages/home/home.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyD;AACH;AACN;AACgD;AACf;AACG;AAC+L;AAC3M;;AAExE;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,iCAAiC,4CAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,gDAAgD;AAChD,SAAS,OAAO,sEAAY;AAC5B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;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,yBAAyB,oCAAoC;AAC7D;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,YAAY,+DAAS;AACrB,uCAAuC,sDAAQ;AAC/C;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,oCAAoC,sDAAQ;AAC5C;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,4CAA4C;AAC5C,SAAS,OAAO,0DAAY;AAC5B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4CAAO;AAChD;AACA;AACA;AACA,yCAAyC,4CAAO;AAChD;AACA;AACA;AACA,4CAA4C,4CAAO;AACnD;AACA;AACA;AACA,6CAA6C,4CAAO;AACpD;AACA;AACA;AACA,uCAAuC,4CAAO;AAC9C;AACA;AACA;AACA,wCAAwC,4CAAO;AAC/C;AACA;AACA;AACA,oCAAoC,4CAAO;AAC3C;AACA;AACA;AACA,qCAAqC,4CAAO;AAC5C;AACA;AACA;AACA,qCAAqC,4CAAO;AAC5C;AACA;AACA;AACA,uCAAuC,4CAAO;AAC9C;AACA;AACA;AACA,kCAAkC,4CAAO;AACzC;AACA;AACA;AACA,qCAAqC,4CAAO;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,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,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAQ,GAAG;AAC/C;AACA,wCAAwC,sDAAQ,GAAG;AACnD;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA,sCAAsC,mCAAmC,EAAE;AAC3E;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA,mCAAmC,EAAE;AACrC,oCAAoC;AACpC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8DAA8D,OAAO;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,mCAAmC,EAAE;AACrC,oCAAoC;AACpC;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,wBAAwB,sDAAQ,GAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,6BAA6B,sDAAQ,GAAG;AACxC,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,+EAA+E;AAC/E;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,mCAAmC,EAAE;AACrC;AACA;AACA,mCAAmC,EAAE;AACrC,oCAAoC;AACpC;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;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;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ,GAAG;AACnC;AACA,iCAAiC,YAAY,yCAAyC,EAAE;AACxF,oCAAoC;AACpC,kCAAkC,YAAY,yCAAyC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ,GAAG,qCAAqC,+JAA+J;AACvO;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,iCAAiC,EAAE;AAC5D,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,wDAAwD,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,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,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,sCAAsC,EAAE;AACxC,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,uBAAuB,wBAAwB;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,mDAAmD,YAAY,oCAAoC,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY,yCAAyC,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA,kCAAkC,kBAAkB;AACpD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;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,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,mEAAmE,EAAE;AAC/F;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,0CAA0C,EAAE;AACrE,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,aAAa,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,mCAAmC,EAAE;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;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,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;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,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,kDAAkD;AAClD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mFAAmF,0DAAG;AACtF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,2EAA2E,6DAAM;AACjF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,0CAA0C,EAAE,IAAI,0DAAG;AAC5E,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,+EAA+E,0DAAG;AAClF,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,wBAAwB,kDAAK;AAC7B;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,yBAAyB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,oDAAoD,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,oDAAoD;AACpD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,iBAAiB,4DAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA,QAAQ,yEAAiB;AACzB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,+BAA+B,EAAE;AACjC;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,EAAE;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,sBAAsB,yDAAW;AACjC;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,mBAAmB,4DAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE;AACtB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA,QAAQ,yEAAiB;AACzB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB,yDAAW;AACnC;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC,kCAAkC,EAAE;AACpC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mFAAmF,0DAAG;AACtF,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,2EAA2E,0DAAG;AAC9E,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,mEAAmE,0DAAG;AACtE,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,6BAA6B,kDAAK;AAClC;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,QAAQ,+CAAE,oBAAoB,gEAAS;AACvC,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,mDAAmD,EAAE,IAAI,4DAAK,IAAI,6DAAM;AACjG,oBAAoB;AACpB;AACA,qBAAqB,2CAA2C,EAAE,IAAI,0DAAG;AACzE,oBAAoB;AACpB;AACA,qBAAqB,qCAAqC,EAAE;AAC5D,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,kDAAkD;AAClD,SAAS,wBAAwB;AACjC,SAAS,gCAAgC,OAAO,oDAAM,mBAAmB,GAAG;AAC5E,SAAS,gCAAgC,OAAO,oDAAM,qBAAqB;AAC3E,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mFAAmF,0DAAG;AACtF,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,6BAA6B,8CAA8C,EAAE;AAC7E,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,6BAA6B,kDAAK,+DAA+D,0DAAG;AACpG,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,0CAA0C,EAAE;AACrE;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA,sCAAsC,2BAA2B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,kDAAkD;AAClD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yEAAyE,0DAAG;AAC5E,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mCAAmC,kDAAK,4DAA4D,0DAAG;AACvG,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,+CAA+C,EAAE;AAC1E,mBAAmB,EAAE;AACrB,+EAA+E,0DAAG;AAClF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,4BAA4B,kDAAK;AACjC;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,iDAAiD;AACjD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mFAAmF,0DAAG;AACtF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,kCAAkC,mCAAmC,EAAE;AACvE;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,2EAA2E,0DAAG;AAC9E,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,+EAA+E,0DAAG;AAClF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,0BAA0B,kDAAK;AAC/B;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,oDAAoD;AACpD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC,0BAA0B,+CAAE,kBAAkB,2DAAI;AAClD,aAAa;AACb;AACA;AACA,sCAAsC,EAAE;AACxC;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,GAAG;AAC9B,4BAA4B;AAC5B;AACA,6CAA6C,QAAQ,EAAE;AACvD,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mFAAmF,0DAAG;AACtF,oBAAoB;AACpB;AACA,qBAAqB,8BAA8B,EAAE;AACrD,mBAAmB,EAAE;AACrB,2EAA2E,0DAAG;AAC9E,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,+CAA+C,oDAAoD;AACnG;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,4BAA4B,kDAAK;AACjC;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,oEAAoE,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,iCAAiC,2DAAI;AACrC;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,8CAA8C;AAC9C,SAAS,wBAAwB;AACjC,SAAS,OAAO,8DAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,OAAO,sDAAM,gBAAgB,OAAO,sDAAQ,EAAE;AACvD,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;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,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC;AAC5E;AACA,yDAAyD;AACzD,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,cAAc,OAAO,mDAAK,EAAE;AAC5B,qBAAqB,OAAO,mDAAK,EAAE;AACnC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,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,8BAA8B,0DAAY;AAC1C,4BAA4B,0DAAY;AACxC,0BAA0B,0DAAY;AACtC,2BAA2B,0DAAY;AACvC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,0DAAG;AACtE,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;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,gBAAgB;AAChB;AACA;AACA;AACA,gFAAgF,0DAAG;AACnF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qFAAqF,0DAAG;AACxF,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mFAAmF,0DAAG;AACtF,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2EAA2E,0DAAG;AAC9E,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4EAA4E,gEAAS;AACrF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,kCAAkC,+CAAE,aAAa,6DAAM;AACvD,wBAAwB;AACxB;AACA,yBAAyB,2CAA2C,EAAE,IAAI,gEAAS;AACnF,wBAAwB;AACxB;AACA,yBAAyB,QAAQ,iDAAI,mBAAmB,EAAE,IAAI,2DAAI,wBAAwB,2DAAI,wCAAwC,0DAAG;AACzI,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,uBAAuB,sDAAQ,GAAG,UAAU,yBAAyB;AACrE,aAAa,IAAI,8DAAO,IAAI,0DAAG;AAC/B,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mBAAmB,kDAAK;AACxB,SAAS,IAAI,0DAAG;AAChB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2EAA2E,0DAAG;AAC9E,oBAAoB;AACpB;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF,SAAS,IAAI,gEAAS;AACtB,oBAAoB;AACpB;AACA,qBAAqB,qDAAqD,0DAAG;AAC7E,oBAAoB;AACpB;AACA,qBAAqB,gDAAgD,EAAE,IAAI,EAAE,IAAI,gEAAS;AAC1F,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uEAAuE,4DAAK;AAC5E;AACA;AACA,uBAAuB,+CAAE;AACzB;AACA,SAAS,IAAI,0DAAG;AAChB,oBAAoB;AACpB;AACA;AACA,iCAAiC,gDAAgD;AACjF,SAAS;AACT,+BAA+B,kDAAK;AACpC;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAM;AAC5B,wBAAwB;AACxB;AACA,yBAAyB,wGAAwG,EAAE,IAAI,4DAAK;AAC5I;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,gCAAgC,EAAE;AAC5D;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,4GAA4G,gQAAgQ,mQAAmQ,+FAA+F,8PAA8P,8BAA8B,oDAAoD,oCAAoC,qHAAqH,oCAAoC,sJAAsJ,+BAA+B,wFAAwF,2DAA2D;AACniD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB,EAAE;AAC5D,iBAAiB;AACjB;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,gCAAgC,OAAO,oDAAM,qBAAqB;AAC3E,MAAM;AACN;AACA,kBAAkB,OAAO,6DAAe,mCAAmC;AAC3E,sBAAsB,OAAO,oDAAM,EAAE;AACrC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,8BAA8B,OAAO,0DAAY,oDAAoD;AACrG;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;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,iCAAiC,4CAAO;AACxC;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,gBAAgB;AAChB,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,cAAc,EAAE;AACzC;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,kBAAkB,4DAAK;AACvB;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA,gEAAgE;AAChE;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gEAAgE;AAChE;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,cAAc,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,wFAAwF,sZAAsZ,6GAA6G,+HAA+H,4SAA4S;AACtgC;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,iEAAK,WAAW,iEAAK,EAAE,YAAY;AAC/D,4BAA4B,iEAAK,SAAS,iEAAK,EAAE,cAAc;AAC/D,4BAA4B,sEAAU;AACtC,0CAA0C,YAAY;AACtD,gCAAgC,mEAAO;AACvC;AACA,4BAA4B,sEAAU;AACtC,0CAA0C,UAAU;AACpD,gCAAgC,mEAAO;AACvC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iDAAiD;AACjD,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,wBAAwB;AACjC,SAAS;AACT,MAAM;AACN;AACA,wBAAwB,OAAO,mDAAK,EAAE;AACtC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,0DAAY,oCAAoC;AAC9E,wBAAwB,OAAO,0DAAY,qCAAqC;AAChF,yBAAyB,OAAO,0DAAY,sCAAsC;AAClF,uBAAuB,OAAO,0DAAY,wBAAwB;AAClE,yBAAyB,OAAO,0DAAY,0BAA0B;AACtE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,gBAAgB,+DAAS,kBAAkB,EAAE,8BAA8B,EAAE;AAC7E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC;AACxE;AACA,yDAAyD;AACzD,SAAS,OAAO,sDAAM,EAAE;AACxB,SAAS,OAAO,8DAAc,EAAE;AAChC,SAAS,6BAA6B,OAAO,uDAAS,uBAAuB,GAAG;AAChF,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,uBAAuB,OAAO,mDAAK,EAAE;AACrC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,sBAAsB,OAAO,mDAAK,EAAE;AACpC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,6DAAa;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,gBAAgB,+DAAS,kBAAkB,EAAE,8BAA8B,EAAE;AAC7E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wBAAwB,+BAA+B;AACvD;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,iCAAiC;AAClD;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AA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","file":"2.f50d7e048b5571c07f16.js","sourcesContent":["import { EventManager } from '@angular/platform-browser';\nimport { __extends, __assign, __spread } from 'tslib';\nimport { Subject, merge, of, from } from 'rxjs';\nimport { tap, filter, switchMap, first, skip, take, delay, map, toArray } from 'rxjs/operators';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { isPlatformBrowser, LocationStrategy, CommonModule } from '@angular/common';\nimport { Injectable, ErrorHandler, isDevMode, InjectionToken, PLATFORM_ID, Inject, Optional, Component, Input, Output, Directive, ContentChildren, TemplateRef, ElementRef, EventEmitter, HostListener, NgZone, Renderer2, Attribute, HostBinding, NgModule } from '@angular/core';\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar ResizeService = /** @class */ (function () {\r\n function ResizeService(eventManager) {\r\n this.eventManager = eventManager;\r\n this.resizeSubject = new Subject();\r\n this.eventManager.addGlobalEventListener('window', 'resize', this.onResize.bind(this));\r\n this.eventManager.addGlobalEventListener('window', 'onload', this.onLoaded.bind(this));\r\n }\r\n Object.defineProperty(ResizeService.prototype, \"onResize$\", {\r\n /**\r\n * Makes resizeSubject become Observable\r\n * @returns Observable of resizeSubject\r\n */\r\n get: /**\r\n * Makes resizeSubject become Observable\r\n * @return {?} Observable of resizeSubject\r\n */\r\n function () {\r\n return this.resizeSubject.asObservable();\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Handler of 'resize' event. Passes data throw resizeSubject\r\n * @param event Event Object of 'resize' event\r\n */\r\n /**\r\n * Handler of 'resize' event. Passes data throw resizeSubject\r\n * @private\r\n * @param {?} event Event Object of 'resize' event\r\n * @return {?}\r\n */\r\n ResizeService.prototype.onResize = /**\r\n * Handler of 'resize' event. Passes data throw resizeSubject\r\n * @private\r\n * @param {?} event Event Object of 'resize' event\r\n * @return {?}\r\n */\r\n function (event) {\r\n this.resizeSubject.next((/** @type {?} */ (event.target)));\r\n };\r\n /**\r\n * Handler of 'onload' event. Defines the width of window\r\n * @param event Event Object of 'onload' event\r\n */\r\n /**\r\n * Handler of 'onload' event. Defines the width of window\r\n * @private\r\n * @param {?} event Event Object of 'onload' event\r\n * @return {?}\r\n */\r\n ResizeService.prototype.onLoaded = /**\r\n * Handler of 'onload' event. Defines the width of window\r\n * @private\r\n * @param {?} event Event Object of 'onload' event\r\n * @return {?}\r\n */\r\n function (event) {\r\n this.windowWidth = (/** @type {?} */ (event.target));\r\n };\r\n ResizeService.decorators = [\r\n { type: Injectable }\r\n ];\r\n ResizeService.ctorParameters = function () { return [\r\n { type: EventManager }\r\n ]; };\r\n return ResizeService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n/**\r\n * Defaults value of options\r\n */\r\nvar /**\r\n * Defaults value of options\r\n */\r\nOwlCarouselOConfig = /** @class */ (function () {\r\n function OwlCarouselOConfig() {\r\n this.items = 3;\r\n this.skip_validateItems = false;\r\n this.loop = false;\r\n this.center = false;\r\n this.rewind = false;\r\n this.mouseDrag = true;\r\n this.touchDrag = true;\r\n this.pullDrag = true;\r\n this.freeDrag = false;\r\n this.margin = 0;\r\n this.stagePadding = 0;\r\n this.merge = false;\r\n this.mergeFit = true;\r\n this.autoWidth = false;\r\n this.startPosition = 0;\r\n this.rtl = false;\r\n this.smartSpeed = 250;\r\n this.fluidSpeed = false;\r\n this.dragEndSpeed = false;\r\n this.responsive = {};\r\n this.responsiveRefreshRate = 200;\r\n // defaults to Navigation\r\n this.nav = false;\r\n this.navText = ['prev', 'next'];\r\n this.navSpeed = false;\r\n this.slideBy = 1; // stage moves on 1 width of slide; if slideBy = 2, stage moves on 2 widths of slide\r\n this.dots = true;\r\n this.dotsEach = false;\r\n this.dotsData = false;\r\n this.dotsSpeed = false;\r\n // defaults to Autoplay\r\n this.autoplay = false;\r\n this.autoplayTimeout = 5000;\r\n this.autoplayHoverPause = false;\r\n this.autoplaySpeed = false;\r\n // defaults to LazyLoading\r\n this.lazyLoad = false;\r\n this.lazyLoadEager = 0;\r\n // defaults to Animate\r\n this.animateOut = false;\r\n this.animateIn = false;\r\n // defaults to AutoHeight\r\n this.autoHeight = false;\r\n // defaults to Hash\r\n this.URLhashListener = false;\r\n }\r\n return OwlCarouselOConfig;\r\n}());\r\n/**\r\n * we can't read types from OwlOptions in javascript because of props have undefined value and types of those props are used for validating inputs\r\n * class below is copy of OwlOptions but its all props have string value showing certain type;\r\n * this is class is being used just in method _validateOptions() of CarouselService;\r\n */\r\nvar /**\r\n * we can't read types from OwlOptions in javascript because of props have undefined value and types of those props are used for validating inputs\r\n * class below is copy of OwlOptions but its all props have string value showing certain type;\r\n * this is class is being used just in method _validateOptions() of CarouselService;\r\n */\r\nOwlOptionsMockedTypes = /** @class */ (function () {\r\n function OwlOptionsMockedTypes() {\r\n this.items = 'number';\r\n this.skip_validateItems = 'boolean';\r\n this.loop = 'boolean';\r\n this.center = 'boolean';\r\n this.rewind = 'boolean';\r\n this.mouseDrag = 'boolean';\r\n this.touchDrag = 'boolean';\r\n this.pullDrag = 'boolean';\r\n this.freeDrag = 'boolean';\r\n this.margin = 'number';\r\n this.stagePadding = 'number';\r\n this.merge = 'boolean';\r\n this.mergeFit = 'boolean';\r\n this.autoWidth = 'boolean';\r\n this.startPosition = 'number|string';\r\n this.rtl = 'boolean';\r\n this.smartSpeed = 'number';\r\n this.fluidSpeed = 'boolean';\r\n this.dragEndSpeed = 'number|boolean';\r\n this.responsive = {};\r\n this.responsiveRefreshRate = 'number';\r\n // defaults to Navigation\r\n this.nav = 'boolean';\r\n this.navText = 'string[]';\r\n this.navSpeed = 'number|boolean';\r\n this.slideBy = 'number|string'; // stage moves on 1 width of slide; if slideBy = 2, stage moves on 2 widths of slide\r\n this.dots = 'boolean';\r\n this.dotsEach = 'number|boolean';\r\n this.dotsData = 'boolean';\r\n this.dotsSpeed = 'number|boolean';\r\n // defaults to Autoplay\r\n this.autoplay = 'boolean';\r\n this.autoplayTimeout = 'number';\r\n this.autoplayHoverPause = 'boolean';\r\n this.autoplaySpeed = 'number|boolean';\r\n // defaults to LazyLoading\r\n this.lazyLoad = 'boolean';\r\n this.lazyLoadEager = 'number';\r\n // defaults to Animate\r\n this.animateOut = 'string|boolean';\r\n this.animateIn = 'string|boolean';\r\n // defaults to AutoHeight\r\n this.autoHeight = 'boolean';\r\n // defaults to Hash\r\n this.URLhashListener = \"boolean\";\r\n }\r\n return OwlOptionsMockedTypes;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar OwlLogger = /** @class */ (function () {\r\n function OwlLogger(errorHandler) {\r\n this.errorHandler = errorHandler;\r\n }\r\n /**\r\n * @param {?} value\r\n * @param {...?} rest\r\n * @return {?}\r\n */\r\n OwlLogger.prototype.log = /**\r\n * @param {?} value\r\n * @param {...?} rest\r\n * @return {?}\r\n */\r\n function (value) {\r\n var rest = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n rest[_i - 1] = arguments[_i];\r\n }\r\n if (isDevMode()) {\r\n console.log.apply(console, __spread([value], rest));\r\n }\r\n };\r\n /**\r\n * @param {?} error\r\n * @return {?}\r\n */\r\n OwlLogger.prototype.error = /**\r\n * @param {?} error\r\n * @return {?}\r\n */\r\n function (error) {\r\n this.errorHandler.handleError(error);\r\n };\r\n /**\r\n * @param {?} value\r\n * @param {...?} rest\r\n * @return {?}\r\n */\r\n OwlLogger.prototype.warn = /**\r\n * @param {?} value\r\n * @param {...?} rest\r\n * @return {?}\r\n */\r\n function (value) {\r\n var rest = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n rest[_i - 1] = arguments[_i];\r\n }\r\n console.warn.apply(console, __spread([value], rest));\r\n };\r\n OwlLogger.decorators = [\r\n { type: Injectable }\r\n ];\r\n OwlLogger.ctorParameters = function () { return [\r\n { type: ErrorHandler }\r\n ]; };\r\n return OwlLogger;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n/** @enum {string} */\r\nvar Type = {\r\n Event: 'event',\r\n State: 'state',\r\n};\r\n/** @enum {string} */\r\nvar Width = {\r\n Default: 'default',\r\n Inner: 'inner',\r\n Outer: 'outer',\r\n};\r\nvar CarouselService = /** @class */ (function () {\r\n function CarouselService(logger) {\r\n var _this = this;\r\n this.logger = logger;\r\n /**\r\n * Subject for passing data needed for managing View\r\n */\r\n this._viewSettingsShipper$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel got initializes\r\n */\r\n this._initializedCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel's settings start changinf\r\n */\r\n this._changeSettingsCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel's settings have changed\r\n */\r\n this._changedSettingsCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel starts translating or moving\r\n */\r\n this._translateCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel stopped translating or moving\r\n */\r\n this._translatedCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel's rebuilding caused by 'resize' event starts\r\n */\r\n this._resizeCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the carousel's rebuilding caused by 'resize' event is ended\r\n */\r\n this._resizedCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the refresh of carousel starts\r\n */\r\n this._refreshCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the refresh of carousel is ended\r\n */\r\n this._refreshedCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the dragging of carousel starts\r\n */\r\n this._dragCarousel$ = new Subject();\r\n /**\r\n * Subject for notification when the dragging of carousel is ended\r\n */\r\n this._draggedCarousel$ = new Subject();\r\n /**\r\n * Current settings for the carousel.\r\n */\r\n this.settings = {\r\n items: 0\r\n };\r\n /**\r\n * Initial data for setting classes to element .owl-carousel\r\n */\r\n this.owlDOMData = {\r\n rtl: false,\r\n isResponsive: false,\r\n isRefreshed: false,\r\n isLoaded: false,\r\n isLoading: false,\r\n isMouseDragable: false,\r\n isGrab: false,\r\n isTouchDragable: false\r\n };\r\n /**\r\n * Initial data of .owl-stage\r\n */\r\n this.stageData = {\r\n transform: 'translate3d(0px,0px,0px)',\r\n transition: '0s',\r\n width: 0,\r\n paddingL: 0,\r\n paddingR: 0\r\n };\r\n /**\r\n * All real items.\r\n */\r\n this._items = []; // is equal to this.slides\r\n /**\r\n * Array with width of every slide.\r\n */\r\n this._widths = [];\r\n /**\r\n * Currently suppressed events to prevent them from beeing retriggered.\r\n */\r\n this._supress = {};\r\n /**\r\n * References to the running plugins of this carousel.\r\n */\r\n this._plugins = {};\r\n /**\r\n * Absolute current position.\r\n */\r\n this._current = null;\r\n /**\r\n * All cloned items.\r\n */\r\n this._clones = [];\r\n /**\r\n * Merge values of all items.\r\n * @todo Maybe this could be part of a plugin.\r\n */\r\n this._mergers = [];\r\n /**\r\n * Animation speed in milliseconds.\r\n */\r\n this._speed = null;\r\n /**\r\n * Coordinates of all items in pixel.\r\n * @todo The name of this member is missleading.\r\n */\r\n this._coordinates = [];\r\n /**\r\n * Current breakpoint.\r\n * @todo Real media queries would be nice.\r\n */\r\n this._breakpoint = null;\r\n /**\r\n * Prefix for id of cloned slides\r\n */\r\n this.clonedIdPrefix = 'cloned-';\r\n /**\r\n * Current options set by the caller including defaults.\r\n */\r\n this._options = {};\r\n /**\r\n * Invalidated parts within the update process.\r\n */\r\n this._invalidated = {};\r\n /**\r\n * Current state information and their tags.\r\n */\r\n this._states = {\r\n current: {},\r\n tags: {\r\n initializing: ['busy'],\r\n animating: ['busy'],\r\n dragging: ['interacting']\r\n }\r\n };\r\n /**\r\n * Ordered list of workers for the update process.\r\n */\r\n this._pipe = [\r\n // {\r\n // filter: ['width', 'settings'],\r\n // run: () => {\r\n // this._width = this.carouselWindowWidth;\r\n // }\r\n // },\r\n {\r\n filter: ['width', 'items', 'settings'],\r\n run: (/**\r\n * @param {?} cache\r\n * @return {?}\r\n */\r\n function (cache) {\r\n cache.current = _this._items && _this._items[_this.relative(_this._current)].id;\r\n })\r\n },\r\n // {\r\n // filter: ['items', 'settings'],\r\n // run: function() {\r\n // // this.$stage.children('.cloned').remove();\r\n // }\r\n // },\r\n {\r\n filter: ['width', 'items', 'settings'],\r\n run: (/**\r\n * @param {?} cache\r\n * @return {?}\r\n */\r\n function (cache) {\r\n /** @type {?} */\r\n var margin = _this.settings.margin || '';\r\n /** @type {?} */\r\n var grid = !_this.settings.autoWidth;\r\n /** @type {?} */\r\n var rtl = _this.settings.rtl;\r\n /** @type {?} */\r\n var css = {\r\n 'margin-left': rtl ? margin : '',\r\n 'margin-right': rtl ? '' : margin\r\n };\r\n if (!grid) {\r\n _this.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n slide.marginL = css['margin-left'];\r\n slide.marginR = css['margin-right'];\r\n }));\r\n }\r\n cache.css = css;\r\n })\r\n }, {\r\n filter: ['width', 'items', 'settings'],\r\n run: (/**\r\n * @param {?} cache\r\n * @return {?}\r\n */\r\n function (cache) {\r\n /** @type {?} */\r\n var width = +(_this.width() / _this.settings.items).toFixed(3) - _this.settings.margin;\r\n /** @type {?} */\r\n var grid = !_this.settings.autoWidth;\r\n /** @type {?} */\r\n var widths = [];\r\n /** @type {?} */\r\n var merge$$1 = null;\r\n /** @type {?} */\r\n var iterator = _this._items.length;\r\n cache.items = {\r\n merge: false,\r\n width: width\r\n };\r\n while (iterator--) {\r\n merge$$1 = _this._mergers[iterator];\r\n merge$$1 = _this.settings.mergeFit && Math.min(merge$$1, _this.settings.items) || merge$$1;\r\n cache.items.merge = merge$$1 > 1 || cache.items.merge;\r\n widths[iterator] = !grid ? _this._items[iterator].width ? _this._items[iterator].width : width : width * merge$$1;\r\n }\r\n _this._widths = widths;\r\n _this.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @param {?} i\r\n * @return {?}\r\n */\r\n function (slide, i) {\r\n slide.width = _this._widths[i];\r\n slide.marginR = cache.css['margin-right'];\r\n slide.marginL = cache.css['margin-left'];\r\n }));\r\n })\r\n }, {\r\n filter: ['items', 'settings'],\r\n run: (/**\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var clones = [];\r\n /** @type {?} */\r\n var items = _this._items;\r\n /** @type {?} */\r\n var settings = _this.settings;\r\n /** @type {?} */\r\n var \r\n // TODO: Should be computed from number of min width items in stage\r\n view = Math.max(settings.items * 2, 4);\r\n /** @type {?} */\r\n var size = Math.ceil(items.length / 2) * 2;\r\n /** @type {?} */\r\n var append = [];\r\n /** @type {?} */\r\n var prepend = [];\r\n /** @type {?} */\r\n var repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0;\r\n repeat /= 2;\r\n while (repeat--) {\r\n // Switch to only using appended clones\r\n clones.push(_this.normalize(clones.length / 2, true));\r\n append.push(__assign({}, _this.slidesData[clones[clones.length - 1]]));\r\n clones.push(_this.normalize(items.length - 1 - (clones.length - 1) / 2, true));\r\n prepend.unshift(__assign({}, _this.slidesData[clones[clones.length - 1]]));\r\n }\r\n _this._clones = clones;\r\n append = append.map((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n slide.id = \"\" + _this.clonedIdPrefix + slide.id;\r\n slide.isActive = false;\r\n slide.isCloned = true;\r\n return slide;\r\n }));\r\n prepend = prepend.map((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n slide.id = \"\" + _this.clonedIdPrefix + slide.id;\r\n slide.isActive = false;\r\n slide.isCloned = true;\r\n return slide;\r\n }));\r\n _this.slidesData = prepend.concat(_this.slidesData).concat(append);\r\n })\r\n }, {\r\n filter: ['width', 'items', 'settings'],\r\n run: (/**\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var rtl = _this.settings.rtl ? 1 : -1;\r\n /** @type {?} */\r\n var size = _this._clones.length + _this._items.length;\r\n /** @type {?} */\r\n var coordinates = [];\r\n /** @type {?} */\r\n var iterator = -1;\r\n /** @type {?} */\r\n var previous = 0;\r\n /** @type {?} */\r\n var current = 0;\r\n while (++iterator < size) {\r\n previous = coordinates[iterator - 1] || 0;\r\n current = _this._widths[_this.relative(iterator)] + _this.settings.margin;\r\n coordinates.push(previous + current * rtl);\r\n }\r\n _this._coordinates = coordinates;\r\n })\r\n }, {\r\n filter: ['width', 'items', 'settings'],\r\n run: (/**\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var padding = _this.settings.stagePadding;\r\n /** @type {?} */\r\n var coordinates = _this._coordinates;\r\n /** @type {?} */\r\n var css = {\r\n 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,\r\n 'padding-left': padding || '',\r\n 'padding-right': padding || ''\r\n };\r\n _this.stageData.width = css.width; // use this property in *ngIf directive for .owl-stage element\r\n _this.stageData.paddingL = css['padding-left'];\r\n _this.stageData.paddingR = css['padding-right'];\r\n })\r\n }, {\r\n // filter: [ 'width', 'items', 'settings' ],\r\n // run: cache => {\r\n // \t\t// this method sets the width for every slide, but I set it in different way earlier\r\n // \t\tconst grid = !this.settings.autoWidth,\r\n // \t\titems = this.$stage.children(); // use this.slidesData\r\n // let iterator = this._coordinates.length;\r\n // if (grid && cache.items.merge) {\r\n // while (iterator--) {\r\n // cache.css.width = this._widths[this.relative(iterator)];\r\n // items.eq(iterator).css(cache.css);\r\n // }\r\n // } else if (grid) {\r\n // cache.css.width = cache.items.width;\r\n // items.css(cache.css);\r\n // }\r\n // }\r\n // }, {\r\n // filter: [ 'items' ],\r\n // run: function() {\r\n // this._coordinates.length < 1 && this.$stage.removeAttr('style');\r\n // }\r\n // }, {\r\n filter: ['width', 'items', 'settings'],\r\n run: (/**\r\n * @param {?} cache\r\n * @return {?}\r\n */\r\n function (cache) {\r\n /** @type {?} */\r\n var current = cache.current ? _this.slidesData.findIndex((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) { return slide.id === cache.current; })) : 0;\r\n current = Math.max(_this.minimum(), Math.min(_this.maximum(), current));\r\n _this.reset(current);\r\n })\r\n }, {\r\n filter: ['position'],\r\n run: (/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.animate(_this.coordinates(_this._current));\r\n })\r\n }, {\r\n filter: ['width', 'position', 'items', 'settings'],\r\n run: (/**\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var rtl = _this.settings.rtl ? 1 : -1;\r\n /** @type {?} */\r\n var padding = _this.settings.stagePadding * 2;\r\n /** @type {?} */\r\n var matches = [];\r\n /** @type {?} */\r\n var begin;\r\n /** @type {?} */\r\n var end;\r\n /** @type {?} */\r\n var inner;\r\n /** @type {?} */\r\n var outer;\r\n /** @type {?} */\r\n var i;\r\n /** @type {?} */\r\n var n;\r\n begin = _this.coordinates(_this.current());\r\n if (typeof begin === 'number') {\r\n begin += padding;\r\n }\r\n else {\r\n begin = 0;\r\n }\r\n end = begin + _this.width() * rtl;\r\n if (rtl === -1 && _this.settings.center) {\r\n /** @type {?} */\r\n var result = _this._coordinates.filter((/**\r\n * @param {?} element\r\n * @return {?}\r\n */\r\n function (element) {\r\n return _this.settings.items % 2 === 1 ? element >= begin : element > begin;\r\n }));\r\n begin = result.length ? result[result.length - 1] : begin;\r\n }\r\n for (i = 0, n = _this._coordinates.length; i < n; i++) {\r\n inner = Math.ceil(_this._coordinates[i - 1] || 0);\r\n outer = Math.ceil(Math.abs(_this._coordinates[i]) + padding * rtl);\r\n if ((_this._op(inner, '<=', begin) && (_this._op(inner, '>', end)))\r\n || (_this._op(outer, '<', begin) && _this._op(outer, '>', end))) {\r\n matches.push(i);\r\n }\r\n }\r\n _this.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n slide.isActive = false;\r\n return slide;\r\n }));\r\n matches.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n _this.slidesData[item].isActive = true;\r\n }));\r\n if (_this.settings.center) {\r\n _this.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n slide.isCentered = false;\r\n return slide;\r\n }));\r\n _this.slidesData[_this.current()].isCentered = true;\r\n }\r\n })\r\n }\r\n ];\r\n }\r\n Object.defineProperty(CarouselService.prototype, \"invalidated\", {\r\n // Is needed for tests\r\n get: \r\n // Is needed for tests\r\n /**\r\n * @return {?}\r\n */\r\n function () {\r\n return this._invalidated;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(CarouselService.prototype, \"states\", {\r\n // is needed for tests\r\n get: \r\n // is needed for tests\r\n /**\r\n * @return {?}\r\n */\r\n function () {\r\n return this._states;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Makes _viewSettingsShipper$ Subject become Observable\r\n * @returns Observable of _viewSettingsShipper$ Subject\r\n */\r\n /**\r\n * Makes _viewSettingsShipper$ Subject become Observable\r\n * @return {?} Observable of _viewSettingsShipper$ Subject\r\n */\r\n CarouselService.prototype.getViewCurSettings = /**\r\n * Makes _viewSettingsShipper$ Subject become Observable\r\n * @return {?} Observable of _viewSettingsShipper$ Subject\r\n */\r\n function () {\r\n return this._viewSettingsShipper$.asObservable();\r\n };\r\n /**\r\n * Makes _initializedCarousel$ Subject become Observable\r\n * @returns Observable of _initializedCarousel$ Subject\r\n */\r\n /**\r\n * Makes _initializedCarousel$ Subject become Observable\r\n * @return {?} Observable of _initializedCarousel$ Subject\r\n */\r\n CarouselService.prototype.getInitializedState = /**\r\n * Makes _initializedCarousel$ Subject become Observable\r\n * @return {?} Observable of _initializedCarousel$ Subject\r\n */\r\n function () {\r\n return this._initializedCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _changeSettingsCarousel$ Subject become Observable\r\n * @returns Observable of _changeSettingsCarousel$ Subject\r\n */\r\n /**\r\n * Makes _changeSettingsCarousel$ Subject become Observable\r\n * @return {?} Observable of _changeSettingsCarousel$ Subject\r\n */\r\n CarouselService.prototype.getChangeState = /**\r\n * Makes _changeSettingsCarousel$ Subject become Observable\r\n * @return {?} Observable of _changeSettingsCarousel$ Subject\r\n */\r\n function () {\r\n return this._changeSettingsCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _changedSettingsCarousel$ Subject become Observable\r\n * @returns Observable of _changedSettingsCarousel$ Subject\r\n */\r\n /**\r\n * Makes _changedSettingsCarousel$ Subject become Observable\r\n * @return {?} Observable of _changedSettingsCarousel$ Subject\r\n */\r\n CarouselService.prototype.getChangedState = /**\r\n * Makes _changedSettingsCarousel$ Subject become Observable\r\n * @return {?} Observable of _changedSettingsCarousel$ Subject\r\n */\r\n function () {\r\n return this._changedSettingsCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _translateCarousel$ Subject become Observable\r\n * @returns Observable of _translateCarousel$ Subject\r\n */\r\n /**\r\n * Makes _translateCarousel$ Subject become Observable\r\n * @return {?} Observable of _translateCarousel$ Subject\r\n */\r\n CarouselService.prototype.getTranslateState = /**\r\n * Makes _translateCarousel$ Subject become Observable\r\n * @return {?} Observable of _translateCarousel$ Subject\r\n */\r\n function () {\r\n return this._translateCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _translatedCarousel$ Subject become Observable\r\n * @returns Observable of _translatedCarousel$ Subject\r\n */\r\n /**\r\n * Makes _translatedCarousel$ Subject become Observable\r\n * @return {?} Observable of _translatedCarousel$ Subject\r\n */\r\n CarouselService.prototype.getTranslatedState = /**\r\n * Makes _translatedCarousel$ Subject become Observable\r\n * @return {?} Observable of _translatedCarousel$ Subject\r\n */\r\n function () {\r\n return this._translatedCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _resizeCarousel$ Subject become Observable\r\n * @returns Observable of _resizeCarousel$ Subject\r\n */\r\n /**\r\n * Makes _resizeCarousel$ Subject become Observable\r\n * @return {?} Observable of _resizeCarousel$ Subject\r\n */\r\n CarouselService.prototype.getResizeState = /**\r\n * Makes _resizeCarousel$ Subject become Observable\r\n * @return {?} Observable of _resizeCarousel$ Subject\r\n */\r\n function () {\r\n return this._resizeCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _resizedCarousel$ Subject become Observable\r\n * @returns Observable of _resizedCarousel$ Subject\r\n */\r\n /**\r\n * Makes _resizedCarousel$ Subject become Observable\r\n * @return {?} Observable of _resizedCarousel$ Subject\r\n */\r\n CarouselService.prototype.getResizedState = /**\r\n * Makes _resizedCarousel$ Subject become Observable\r\n * @return {?} Observable of _resizedCarousel$ Subject\r\n */\r\n function () {\r\n return this._resizedCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _refreshCarousel$ Subject become Observable\r\n * @returns Observable of _refreshCarousel$ Subject\r\n */\r\n /**\r\n * Makes _refreshCarousel$ Subject become Observable\r\n * @return {?} Observable of _refreshCarousel$ Subject\r\n */\r\n CarouselService.prototype.getRefreshState = /**\r\n * Makes _refreshCarousel$ Subject become Observable\r\n * @return {?} Observable of _refreshCarousel$ Subject\r\n */\r\n function () {\r\n return this._refreshCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _refreshedCarousel$ Subject become Observable\r\n * @returns Observable of _refreshedCarousel$ Subject\r\n */\r\n /**\r\n * Makes _refreshedCarousel$ Subject become Observable\r\n * @return {?} Observable of _refreshedCarousel$ Subject\r\n */\r\n CarouselService.prototype.getRefreshedState = /**\r\n * Makes _refreshedCarousel$ Subject become Observable\r\n * @return {?} Observable of _refreshedCarousel$ Subject\r\n */\r\n function () {\r\n return this._refreshedCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _dragCarousel$ Subject become Observable\r\n * @returns Observable of _dragCarousel$ Subject\r\n */\r\n /**\r\n * Makes _dragCarousel$ Subject become Observable\r\n * @return {?} Observable of _dragCarousel$ Subject\r\n */\r\n CarouselService.prototype.getDragState = /**\r\n * Makes _dragCarousel$ Subject become Observable\r\n * @return {?} Observable of _dragCarousel$ Subject\r\n */\r\n function () {\r\n return this._dragCarousel$.asObservable();\r\n };\r\n /**\r\n * Makes _draggedCarousel$ Subject become Observable\r\n * @returns Observable of _draggedCarousel$ Subject\r\n */\r\n /**\r\n * Makes _draggedCarousel$ Subject become Observable\r\n * @return {?} Observable of _draggedCarousel$ Subject\r\n */\r\n CarouselService.prototype.getDraggedState = /**\r\n * Makes _draggedCarousel$ Subject become Observable\r\n * @return {?} Observable of _draggedCarousel$ Subject\r\n */\r\n function () {\r\n return this._draggedCarousel$.asObservable();\r\n };\r\n /**\r\n * Setups custom options expanding default options\r\n * @param options custom options\r\n */\r\n /**\r\n * Setups custom options expanding default options\r\n * @param {?} options custom options\r\n * @return {?}\r\n */\r\n CarouselService.prototype.setOptions = /**\r\n * Setups custom options expanding default options\r\n * @param {?} options custom options\r\n * @return {?}\r\n */\r\n function (options) {\r\n /** @type {?} */\r\n var configOptions = new OwlCarouselOConfig();\r\n /** @type {?} */\r\n var checkedOptions = this._validateOptions(options, configOptions);\r\n this._options = __assign({}, configOptions, checkedOptions);\r\n };\r\n /**\r\n * Checks whether user's option are set properly. Cheking is based on typings;\r\n * @param options options set by user\r\n * @param configOptions default options\r\n * @returns checked and modified (if it's needed) user's options\r\n *\r\n * Notes:\r\n * \t- if user set option with wrong type, it'll be written in console\r\n */\r\n /**\r\n * Checks whether user's option are set properly. Cheking is based on typings;\r\n * @private\r\n * @param {?} options options set by user\r\n * @param {?} configOptions default options\r\n * @return {?} checked and modified (if it's needed) user's options\r\n *\r\n * Notes:\r\n * \t- if user set option with wrong type, it'll be written in console\r\n */\r\n CarouselService.prototype._validateOptions = /**\r\n * Checks whether user's option are set properly. Cheking is based on typings;\r\n * @private\r\n * @param {?} options options set by user\r\n * @param {?} configOptions default options\r\n * @return {?} checked and modified (if it's needed) user's options\r\n *\r\n * Notes:\r\n * \t- if user set option with wrong type, it'll be written in console\r\n */\r\n function (options, configOptions) {\r\n var _this = this;\r\n /** @type {?} */\r\n var checkedOptions = __assign({}, options);\r\n /** @type {?} */\r\n var mockedTypes = new OwlOptionsMockedTypes();\r\n /** @type {?} */\r\n var setRightOption = (/**\r\n * @param {?} type\r\n * @param {?} key\r\n * @return {?}\r\n */\r\n function (type, key) {\r\n _this.logger.log(\"options.\" + key + \" must be type of \" + type + \"; \" + key + \"=\" + options[key] + \" skipped to defaults: \" + key + \"=\" + configOptions[key]);\r\n return configOptions[key];\r\n });\r\n var _loop_1 = function (key) {\r\n if (checkedOptions.hasOwnProperty(key)) {\r\n // condition could be shortened but it gets harder for understanding\r\n if (mockedTypes[key] === 'number') {\r\n if (this_1._isNumeric(checkedOptions[key])) {\r\n checkedOptions[key] = +checkedOptions[key];\r\n checkedOptions[key] = key === 'items' ? this_1._validateItems(checkedOptions[key], checkedOptions.skip_validateItems) : checkedOptions[key];\r\n }\r\n else {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n }\r\n else if (mockedTypes[key] === 'boolean' && typeof checkedOptions[key] !== 'boolean') {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n else if (mockedTypes[key] === 'number|boolean' && !this_1._isNumberOrBoolean(checkedOptions[key])) {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n else if (mockedTypes[key] === 'number|string' && !this_1._isNumberOrString(checkedOptions[key])) {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n else if (mockedTypes[key] === 'string|boolean' && !this_1._isStringOrBoolean(checkedOptions[key])) {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n else if (mockedTypes[key] === 'string[]') {\r\n if (Array.isArray(checkedOptions[key])) {\r\n /** @type {?} */\r\n var isString_1 = false;\r\n checkedOptions[key].forEach((/**\r\n * @param {?} element\r\n * @return {?}\r\n */\r\n function (element) {\r\n isString_1 = typeof element === 'string' ? true : false;\r\n }));\r\n if (!isString_1) {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n }\r\n else {\r\n checkedOptions[key] = setRightOption(mockedTypes[key], key);\r\n }\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n for (var key in checkedOptions) {\r\n _loop_1(key);\r\n }\r\n return checkedOptions;\r\n };\r\n /**\r\n * Checks the option `items` set by user and if it bigger than number of slides, the function returns number of slides\r\n * @param items option items set by user\r\n * @param skip_validateItems option `skip_validateItems` set by user\r\n * @returns right number of items\r\n */\r\n /**\r\n * Checks the option `items` set by user and if it bigger than number of slides, the function returns number of slides\r\n * @private\r\n * @param {?} items option items set by user\r\n * @param {?} skip_validateItems option `skip_validateItems` set by user\r\n * @return {?} right number of items\r\n */\r\n CarouselService.prototype._validateItems = /**\r\n * Checks the option `items` set by user and if it bigger than number of slides, the function returns number of slides\r\n * @private\r\n * @param {?} items option items set by user\r\n * @param {?} skip_validateItems option `skip_validateItems` set by user\r\n * @return {?} right number of items\r\n */\r\n function (items, skip_validateItems) {\r\n /** @type {?} */\r\n var result = items;\r\n if (items > this._items.length) {\r\n if (skip_validateItems) {\r\n this.logger.log('The option \\'items\\' in your options is bigger than the number of slides. The navigation got disabled');\r\n }\r\n else {\r\n result = this._items.length;\r\n this.logger.log('The option \\'items\\' in your options is bigger than the number of slides. This option is updated to the current number of slides and the navigation got disabled');\r\n }\r\n }\r\n else {\r\n if (items === this._items.length && (this.settings.dots || this.settings.nav)) {\r\n this.logger.log('Option \\'items\\' in your options is equal to the number of slides. So the navigation got disabled');\r\n }\r\n }\r\n return result;\r\n };\r\n /**\r\n * Set current width of carousel\r\n * @param width width of carousel Window\r\n */\r\n /**\r\n * Set current width of carousel\r\n * @param {?} width width of carousel Window\r\n * @return {?}\r\n */\r\n CarouselService.prototype.setCarouselWidth = /**\r\n * Set current width of carousel\r\n * @param {?} width width of carousel Window\r\n * @return {?}\r\n */\r\n function (width) {\r\n this._width = width;\r\n };\r\n /**\r\n * Setups the current settings.\r\n * @todo Remove responsive classes. Why should adaptive designs be brought into IE8?\r\n * @todo Support for media queries by using `matchMedia` would be nice.\r\n * @param carouselWidth width of carousel\r\n * @param slides array of slides\r\n * @param options options set by user\r\n */\r\n /**\r\n * Setups the current settings.\r\n * \\@todo Remove responsive classes. Why should adaptive designs be brought into IE8? / Support for media queries by using `matchMedia` would be nice.\r\n * @param {?} carouselWidth width of carousel\r\n * @param {?} slides array of slides\r\n * @param {?} options options set by user\r\n * @return {?}\r\n */\r\n CarouselService.prototype.setup = /**\r\n * Setups the current settings.\r\n * \\@todo Remove responsive classes. Why should adaptive designs be brought into IE8? / Support for media queries by using `matchMedia` would be nice.\r\n * @param {?} carouselWidth width of carousel\r\n * @param {?} slides array of slides\r\n * @param {?} options options set by user\r\n * @return {?}\r\n */\r\n function (carouselWidth, slides, options) {\r\n this.setCarouselWidth(carouselWidth);\r\n this.setItems(slides);\r\n this._defineSlidesData();\r\n this.setOptions(options);\r\n this.settings = __assign({}, this._options);\r\n this.setOptionsForViewport();\r\n this._trigger('change', { property: { name: 'settings', value: this.settings } });\r\n this.invalidate('settings'); // must be call of this function;\r\n this._trigger('changed', { property: { name: 'settings', value: this.settings } });\r\n };\r\n /**\r\n * Set options for current viewport\r\n */\r\n /**\r\n * Set options for current viewport\r\n * @return {?}\r\n */\r\n CarouselService.prototype.setOptionsForViewport = /**\r\n * Set options for current viewport\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var viewport = this._width;\r\n /** @type {?} */\r\n var overwrites = this._options.responsive;\r\n /** @type {?} */\r\n var match = -1;\r\n if (!Object.keys(overwrites).length) {\r\n return;\r\n }\r\n if (!viewport) {\r\n this.settings.items = 1;\r\n return;\r\n }\r\n for (var key in overwrites) {\r\n if (overwrites.hasOwnProperty(key)) {\r\n if (+key <= viewport && +key > match) {\r\n match = Number(key);\r\n }\r\n }\r\n }\r\n this.settings = __assign({}, this._options, overwrites[match], { items: (overwrites[match] && overwrites[match].items) ? this._validateItems(overwrites[match].items, this._options.skip_validateItems) : this._options.items });\r\n // if (typeof this.settings.stagePadding === 'function') {\r\n // \tthis.settings.stagePadding = this.settings.stagePadding();\r\n // }\r\n delete this.settings.responsive;\r\n this.owlDOMData.isResponsive = true;\r\n this.owlDOMData.isMouseDragable = this.settings.mouseDrag;\r\n this.owlDOMData.isTouchDragable = this.settings.touchDrag;\r\n /** @type {?} */\r\n var mergers = [];\r\n this._items.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n /** @type {?} */\r\n var mergeN = _this.settings.merge ? item.dataMerge : 1;\r\n mergers.push(mergeN);\r\n }));\r\n this._mergers = mergers;\r\n this._breakpoint = match;\r\n this.invalidate('settings');\r\n };\r\n /**\r\n * Initializes the carousel.\r\n * @param slides array of CarouselSlideDirective\r\n */\r\n /**\r\n * Initializes the carousel.\r\n * @param {?} slides array of CarouselSlideDirective\r\n * @return {?}\r\n */\r\n CarouselService.prototype.initialize = /**\r\n * Initializes the carousel.\r\n * @param {?} slides array of CarouselSlideDirective\r\n * @return {?}\r\n */\r\n function (slides) {\r\n var _this = this;\r\n this.enter('initializing');\r\n // this.trigger('initialize');\r\n this.owlDOMData.rtl = this.settings.rtl;\r\n if (this._mergers.length) {\r\n this._mergers = [];\r\n }\r\n slides.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n /** @type {?} */\r\n var mergeN = _this.settings.merge ? item.dataMerge : 1;\r\n _this._mergers.push(mergeN);\r\n }));\r\n this._clones = [];\r\n this.reset(this._isNumeric(this.settings.startPosition) ? +this.settings.startPosition : 0);\r\n this.invalidate('items');\r\n this.refresh();\r\n this.owlDOMData.isLoaded = true;\r\n this.owlDOMData.isMouseDragable = this.settings.mouseDrag;\r\n this.owlDOMData.isTouchDragable = this.settings.touchDrag;\r\n this.sendChanges();\r\n this.leave('initializing');\r\n this._trigger('initialized');\r\n };\r\n /**\r\n * Sends all data needed for View\r\n */\r\n /**\r\n * Sends all data needed for View\r\n * @return {?}\r\n */\r\n CarouselService.prototype.sendChanges = /**\r\n * Sends all data needed for View\r\n * @return {?}\r\n */\r\n function () {\r\n this._viewSettingsShipper$.next({\r\n owlDOMData: this.owlDOMData,\r\n stageData: this.stageData,\r\n slidesData: this.slidesData,\r\n navData: this.navData,\r\n dotsData: this.dotsData\r\n });\r\n };\r\n /**\r\n * Updates option logic if necessery\r\n */\r\n /**\r\n * Updates option logic if necessery\r\n * @private\r\n * @return {?}\r\n */\r\n CarouselService.prototype._optionsLogic = /**\r\n * Updates option logic if necessery\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.settings.autoWidth) {\r\n this.settings.stagePadding = 0;\r\n this.settings.merge = false;\r\n }\r\n };\r\n /**\r\n * Updates the view\r\n */\r\n /**\r\n * Updates the view\r\n * @return {?}\r\n */\r\n CarouselService.prototype.update = /**\r\n * Updates the view\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var i = 0;\r\n /** @type {?} */\r\n var n = this._pipe.length;\r\n /** @type {?} */\r\n var filter$$1 = (/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) { return _this._invalidated[item]; });\r\n /** @type {?} */\r\n var cache = {};\r\n while (i < n) {\r\n /** @type {?} */\r\n var filteredPipe = this._pipe[i].filter.filter(filter$$1);\r\n if (this._invalidated.all || filteredPipe.length > 0) {\r\n this._pipe[i].run(cache);\r\n }\r\n i++;\r\n }\r\n this.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) { return slide.classes = _this.setCurSlideClasses(slide); }));\r\n this.sendChanges();\r\n this._invalidated = {};\r\n if (!this.is('valid')) {\r\n this.enter('valid');\r\n }\r\n };\r\n /**\r\n * Gets the width of the view.\r\n * @param [dimension=Width.Default] The dimension to return\r\n * @returns The width of the view in pixel.\r\n */\r\n /**\r\n * Gets the width of the view.\r\n * @param {?=} dimension\r\n * @return {?} The width of the view in pixel.\r\n */\r\n CarouselService.prototype.width = /**\r\n * Gets the width of the view.\r\n * @param {?=} dimension\r\n * @return {?} The width of the view in pixel.\r\n */\r\n function (dimension) {\r\n dimension = dimension || Width.Default;\r\n switch (dimension) {\r\n case Width.Inner:\r\n case Width.Outer:\r\n return this._width;\r\n default:\r\n return this._width - this.settings.stagePadding * 2 + this.settings.margin;\r\n }\r\n };\r\n /**\r\n * Refreshes the carousel primarily for adaptive purposes.\r\n */\r\n /**\r\n * Refreshes the carousel primarily for adaptive purposes.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.refresh = /**\r\n * Refreshes the carousel primarily for adaptive purposes.\r\n * @return {?}\r\n */\r\n function () {\r\n this.enter('refreshing');\r\n this._trigger('refresh');\r\n this._defineSlidesData();\r\n this.setOptionsForViewport();\r\n this._optionsLogic();\r\n // this.$element.addClass(this.options.refreshClass);\r\n this.update();\r\n // this.$element.removeClass(this.options.refreshClass);\r\n this.leave('refreshing');\r\n this._trigger('refreshed');\r\n };\r\n /**\r\n * Checks window `resize` event.\r\n * @param curWidth width of .owl-carousel\r\n */\r\n /**\r\n * Checks window `resize` event.\r\n * @param {?} curWidth width of .owl-carousel\r\n * @return {?}\r\n */\r\n CarouselService.prototype.onResize = /**\r\n * Checks window `resize` event.\r\n * @param {?} curWidth width of .owl-carousel\r\n * @return {?}\r\n */\r\n function (curWidth) {\r\n if (!this._items.length) {\r\n return false;\r\n }\r\n this.setCarouselWidth(curWidth);\r\n this.enter('resizing');\r\n // if (this.trigger('resize').isDefaultPrevented()) {\r\n // \tthis.leave('resizing');\r\n // \treturn false;\r\n // }\r\n this._trigger('resize');\r\n this.invalidate('width');\r\n this.refresh();\r\n this.leave('resizing');\r\n this._trigger('resized');\r\n };\r\n /**\r\n * Prepares data for dragging carousel. It starts after firing `touchstart` and `mousedown` events.\r\n * @todo Horizontal swipe threshold as option\r\n * @todo #261\r\n * @param event - The event arguments.\r\n * @returns stage - object with 'x' and 'y' coordinates of .owl-stage\r\n */\r\n /**\r\n * Prepares data for dragging carousel. It starts after firing `touchstart` and `mousedown` events.\r\n * \\@todo Horizontal swipe threshold as option / #261\r\n * @param {?} event - The event arguments.\r\n * @return {?} stage - object with 'x' and 'y' coordinates of .owl-stage\r\n */\r\n CarouselService.prototype.prepareDragging = /**\r\n * Prepares data for dragging carousel. It starts after firing `touchstart` and `mousedown` events.\r\n * \\@todo Horizontal swipe threshold as option / #261\r\n * @param {?} event - The event arguments.\r\n * @return {?} stage - object with 'x' and 'y' coordinates of .owl-stage\r\n */\r\n function (event) {\r\n /** @type {?} */\r\n var stage = null;\r\n /** @type {?} */\r\n var transformArr;\r\n // could be 5 commented lines below; However there's stage transform in stageData and in updates after each move of stage\r\n // stage = getComputedStyle(this.el.nativeElement).transform.replace(/.*\\(|\\)| /g, '').split(',');\r\n // stage = {\r\n // x: stage[stage.length === 16 ? 12 : 4],\r\n // y: stage[stage.length === 16 ? 13 : 5]\r\n // };\r\n transformArr = this.stageData.transform.replace(/.*\\(|\\)| |[^,-\\d]\\w|\\)/g, '').split(',');\r\n stage = {\r\n x: +transformArr[0],\r\n y: +transformArr[1]\r\n };\r\n if (this.is('animating')) {\r\n this.invalidate('position');\r\n }\r\n if (event.type === 'mousedown') {\r\n this.owlDOMData.isGrab = true;\r\n }\r\n this.speed(0);\r\n return stage;\r\n };\r\n /**\r\n * Enters into a 'dragging' state\r\n */\r\n /**\r\n * Enters into a 'dragging' state\r\n * @return {?}\r\n */\r\n CarouselService.prototype.enterDragging = /**\r\n * Enters into a 'dragging' state\r\n * @return {?}\r\n */\r\n function () {\r\n this.enter('dragging');\r\n this._trigger('drag');\r\n };\r\n /**\r\n * Defines new coords for .owl-stage while dragging it\r\n * @todo #261\r\n * @param event the event arguments.\r\n * @param dragData initial data got after starting dragging\r\n * @returns coords or false\r\n */\r\n /**\r\n * Defines new coords for .owl-stage while dragging it\r\n * \\@todo #261\r\n * @param {?} event the event arguments.\r\n * @param {?} dragData initial data got after starting dragging\r\n * @return {?} coords or false\r\n */\r\n CarouselService.prototype.defineNewCoordsDrag = /**\r\n * Defines new coords for .owl-stage while dragging it\r\n * \\@todo #261\r\n * @param {?} event the event arguments.\r\n * @param {?} dragData initial data got after starting dragging\r\n * @return {?} coords or false\r\n */\r\n function (event, dragData) {\r\n /** @type {?} */\r\n var minimum = null;\r\n /** @type {?} */\r\n var maximum = null;\r\n /** @type {?} */\r\n var pull = null;\r\n /** @type {?} */\r\n var delta = this.difference(dragData.pointer, this.pointer(event));\r\n /** @type {?} */\r\n var stage = this.difference(dragData.stage.start, delta);\r\n if (!this.is('dragging')) {\r\n return false;\r\n }\r\n if (this.settings.loop) {\r\n minimum = this.coordinates(this.minimum());\r\n maximum = +this.coordinates(this.maximum() + 1) - minimum;\r\n stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum;\r\n }\r\n else {\r\n minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());\r\n maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());\r\n pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;\r\n stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull);\r\n }\r\n return stage;\r\n };\r\n /**\r\n * Finishes dragging of carousel when `touchend` and `mouseup` events fire.\r\n * @todo #261\r\n * @todo Threshold for click event\r\n * @param event the event arguments.\r\n * @param dragObj the object with dragging settings and states\r\n * @param clickAttacher function which attaches click handler to slide or its children elements in order to prevent event bubling\r\n */\r\n /**\r\n * Finishes dragging of carousel when `touchend` and `mouseup` events fire.\r\n * \\@todo #261 / Threshold for click event\r\n * @param {?} event the event arguments.\r\n * @param {?} dragObj the object with dragging settings and states\r\n * @param {?} clickAttacher function which attaches click handler to slide or its children elements in order to prevent event bubling\r\n * @return {?}\r\n */\r\n CarouselService.prototype.finishDragging = /**\r\n * Finishes dragging of carousel when `touchend` and `mouseup` events fire.\r\n * \\@todo #261 / Threshold for click event\r\n * @param {?} event the event arguments.\r\n * @param {?} dragObj the object with dragging settings and states\r\n * @param {?} clickAttacher function which attaches click handler to slide or its children elements in order to prevent event bubling\r\n * @return {?}\r\n */\r\n function (event, dragObj, clickAttacher) {\r\n /** @type {?} */\r\n var directions = ['right', 'left'];\r\n /** @type {?} */\r\n var delta = this.difference(dragObj.pointer, this.pointer(event));\r\n /** @type {?} */\r\n var stage = dragObj.stage.current;\r\n /** @type {?} */\r\n var direction = directions[+(this.settings.rtl ? delta.x < +this.settings.rtl : delta.x > +this.settings.rtl)];\r\n /** @type {?} */\r\n var currentSlideI;\r\n /** @type {?} */\r\n var current;\r\n /** @type {?} */\r\n var newCurrent;\r\n if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {\r\n this.speed(+this.settings.dragEndSpeed || this.settings.smartSpeed);\r\n currentSlideI = this.closest(stage.x, delta.x !== 0 ? direction : dragObj.direction);\r\n current = this.current();\r\n newCurrent = this.current(currentSlideI === -1 ? undefined : currentSlideI);\r\n if (current !== newCurrent) {\r\n this.invalidate('position');\r\n this.update();\r\n }\r\n dragObj.direction = direction;\r\n if (Math.abs(delta.x) > 3 || new Date().getTime() - dragObj.time > 300) {\r\n clickAttacher();\r\n }\r\n }\r\n if (!this.is('dragging')) {\r\n return;\r\n }\r\n this.leave('dragging');\r\n this._trigger('dragged');\r\n };\r\n /**\r\n * Gets absolute position of the closest item for a coordinate.\r\n * @todo Setting `freeDrag` makes `closest` not reusable. See #165.\r\n * @param coordinate The coordinate in pixel.\r\n * @param direction The direction to check for the closest item. Ether `left` or `right`.\r\n * @returns The absolute position of the closest item.\r\n */\r\n /**\r\n * Gets absolute position of the closest item for a coordinate.\r\n * \\@todo Setting `freeDrag` makes `closest` not reusable. See #165.\r\n * @param {?} coordinate The coordinate in pixel.\r\n * @param {?} direction The direction to check for the closest item. Ether `left` or `right`.\r\n * @return {?} The absolute position of the closest item.\r\n */\r\n CarouselService.prototype.closest = /**\r\n * Gets absolute position of the closest item for a coordinate.\r\n * \\@todo Setting `freeDrag` makes `closest` not reusable. See #165.\r\n * @param {?} coordinate The coordinate in pixel.\r\n * @param {?} direction The direction to check for the closest item. Ether `left` or `right`.\r\n * @return {?} The absolute position of the closest item.\r\n */\r\n function (coordinate, direction) {\r\n /** @type {?} */\r\n var pull = 30;\r\n /** @type {?} */\r\n var width = this.width();\r\n /** @type {?} */\r\n var coordinates = (/** @type {?} */ (this.coordinates()));\r\n /** @type {?} */\r\n var position = -1;\r\n if (this.settings.center) {\r\n coordinates = coordinates.map((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n if (item === 0) {\r\n item += 0.000001;\r\n }\r\n return item;\r\n }));\r\n }\r\n // option 'freeDrag' doesn't have realization and using it here creates problem:\r\n // variable 'position' stays unchanged (it equals -1 at the begging) and thus method returns -1\r\n // Returning value is consumed by method current(), which taking -1 as argument calculates the index of new current slide\r\n // In case of having 5 slides ans 'loop=false; calling 'current(-1)' sets props '_current' as 4. Just last slide remains visible instead of 3 last slides.\r\n // if (!this.settings.freeDrag) {\r\n // check closest item\r\n for (var i = 0; i < coordinates.length; i++) {\r\n if (direction === 'left' && coordinate > coordinates[i] - pull && coordinate < coordinates[i] + pull) {\r\n position = i;\r\n // on a right pull, check on previous index\r\n // to do so, subtract width from value and set position = index + 1\r\n }\r\n else if (direction === 'right' && coordinate > coordinates[i] - width - pull && coordinate < coordinates[i] - width + pull) {\r\n position = i + 1;\r\n }\r\n else if (this._op(coordinate, '<', coordinates[i])\r\n && this._op(coordinate, '>', coordinates[i + 1] || coordinates[i] - width)) {\r\n position = direction === 'left' ? i + 1 : i;\r\n }\r\n else if (direction === null && coordinate > coordinates[i] - pull && coordinate < coordinates[i] + pull) {\r\n position = i;\r\n }\r\n if (position !== -1) {\r\n break;\r\n }\r\n }\r\n // }\r\n if (!this.settings.loop) {\r\n // non loop boundries\r\n if (this._op(coordinate, '>', coordinates[this.minimum()])) {\r\n position = coordinate = this.minimum();\r\n }\r\n else if (this._op(coordinate, '<', coordinates[this.maximum()])) {\r\n position = coordinate = this.maximum();\r\n }\r\n }\r\n return position;\r\n };\r\n /**\r\n * Animates the stage.\r\n * @todo #270\r\n * @param coordinate The coordinate in pixels.\r\n */\r\n /**\r\n * Animates the stage.\r\n * \\@todo #270\r\n * @param {?} coordinate The coordinate in pixels.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.animate = /**\r\n * Animates the stage.\r\n * \\@todo #270\r\n * @param {?} coordinate The coordinate in pixels.\r\n * @return {?}\r\n */\r\n function (coordinate) {\r\n /** @type {?} */\r\n var animate$$1 = this.speed() > 0;\r\n if (this.is('animating')) {\r\n this.onTransitionEnd();\r\n }\r\n if (animate$$1) {\r\n this.enter('animating');\r\n this._trigger('translate');\r\n }\r\n this.stageData.transform = 'translate3d(' + coordinate + 'px,0px,0px)';\r\n this.stageData.transition = (this.speed() / 1000) + 's';\r\n // also there was transition by means of JQuery.animate or css-changing property left\r\n };\r\n /**\r\n * Checks whether the carousel is in a specific state or not.\r\n * @param state The state to check.\r\n * @returns The flag which indicates if the carousel is busy.\r\n */\r\n /**\r\n * Checks whether the carousel is in a specific state or not.\r\n * @param {?} state The state to check.\r\n * @return {?} The flag which indicates if the carousel is busy.\r\n */\r\n CarouselService.prototype.is = /**\r\n * Checks whether the carousel is in a specific state or not.\r\n * @param {?} state The state to check.\r\n * @return {?} The flag which indicates if the carousel is busy.\r\n */\r\n function (state$$1) {\r\n return this._states.current[state$$1] && this._states.current[state$$1] > 0;\r\n };\r\n /**\r\n * Sets the absolute position of the current item.\r\n * @param position The new absolute position or nothing to leave it unchanged.\r\n * @returns The absolute position of the current item.\r\n */\r\n /**\r\n * Sets the absolute position of the current item.\r\n * @param {?=} position The new absolute position or nothing to leave it unchanged.\r\n * @return {?} The absolute position of the current item.\r\n */\r\n CarouselService.prototype.current = /**\r\n * Sets the absolute position of the current item.\r\n * @param {?=} position The new absolute position or nothing to leave it unchanged.\r\n * @return {?} The absolute position of the current item.\r\n */\r\n function (position) {\r\n if (position === undefined) {\r\n return this._current;\r\n }\r\n if (this._items.length === 0) {\r\n return undefined;\r\n }\r\n position = this.normalize(position);\r\n if (this._current !== position) {\r\n /** @type {?} */\r\n var event_1 = this._trigger('change', { property: { name: 'position', value: position } });\r\n // if (event.data !== undefined) {\r\n // \tposition = this.normalize(event.data);\r\n // }\r\n this._current = position;\r\n this.invalidate('position');\r\n this._trigger('changed', { property: { name: 'position', value: this._current } });\r\n }\r\n return this._current;\r\n };\r\n /**\r\n * Invalidates the given part of the update routine.\r\n * @param part The part to invalidate.\r\n * @returns The invalidated parts.\r\n */\r\n /**\r\n * Invalidates the given part of the update routine.\r\n * @param {?} part The part to invalidate.\r\n * @return {?} The invalidated parts.\r\n */\r\n CarouselService.prototype.invalidate = /**\r\n * Invalidates the given part of the update routine.\r\n * @param {?} part The part to invalidate.\r\n * @return {?} The invalidated parts.\r\n */\r\n function (part) {\r\n if (typeof part === 'string') {\r\n this._invalidated[part] = true;\r\n if (this.is('valid')) {\r\n this.leave('valid');\r\n }\r\n }\r\n return Object.keys(this._invalidated);\r\n };\r\n /**\r\n * Resets the absolute position of the current item.\r\n * @param position the absolute position of the new item.\r\n */\r\n /**\r\n * Resets the absolute position of the current item.\r\n * @param {?} position the absolute position of the new item.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.reset = /**\r\n * Resets the absolute position of the current item.\r\n * @param {?} position the absolute position of the new item.\r\n * @return {?}\r\n */\r\n function (position) {\r\n position = this.normalize(position);\r\n if (position === undefined) {\r\n return;\r\n }\r\n this._speed = 0;\r\n this._current = position;\r\n this._suppress(['translate', 'translated']);\r\n this.animate(this.coordinates(position));\r\n this._release(['translate', 'translated']);\r\n };\r\n /**\r\n * Normalizes an absolute or a relative position of an item.\r\n * @param position The absolute or relative position to normalize.\r\n * @param relative Whether the given position is relative or not.\r\n * @returns The normalized position.\r\n */\r\n /**\r\n * Normalizes an absolute or a relative position of an item.\r\n * @param {?} position The absolute or relative position to normalize.\r\n * @param {?=} relative Whether the given position is relative or not.\r\n * @return {?} The normalized position.\r\n */\r\n CarouselService.prototype.normalize = /**\r\n * Normalizes an absolute or a relative position of an item.\r\n * @param {?} position The absolute or relative position to normalize.\r\n * @param {?=} relative Whether the given position is relative or not.\r\n * @return {?} The normalized position.\r\n */\r\n function (position, relative) {\r\n /** @type {?} */\r\n var n = this._items.length;\r\n /** @type {?} */\r\n var m = relative ? 0 : this._clones.length;\r\n if (!this._isNumeric(position) || n < 1) {\r\n position = undefined;\r\n }\r\n else if (position < 0 || position >= n + m) {\r\n position = ((position - m / 2) % n + n) % n + m / 2;\r\n }\r\n return position;\r\n };\r\n /**\r\n * Converts an absolute position of an item into a relative one.\r\n * @param position The absolute position to convert.\r\n * @returns The converted position.\r\n */\r\n /**\r\n * Converts an absolute position of an item into a relative one.\r\n * @param {?} position The absolute position to convert.\r\n * @return {?} The converted position.\r\n */\r\n CarouselService.prototype.relative = /**\r\n * Converts an absolute position of an item into a relative one.\r\n * @param {?} position The absolute position to convert.\r\n * @return {?} The converted position.\r\n */\r\n function (position) {\r\n position -= this._clones.length / 2;\r\n return this.normalize(position, true);\r\n };\r\n /**\r\n * Gets the maximum position for the current item.\r\n * @param relative Whether to return an absolute position or a relative position.\r\n * @returns number of maximum position\r\n */\r\n /**\r\n * Gets the maximum position for the current item.\r\n * @param {?=} relative Whether to return an absolute position or a relative position.\r\n * @return {?} number of maximum position\r\n */\r\n CarouselService.prototype.maximum = /**\r\n * Gets the maximum position for the current item.\r\n * @param {?=} relative Whether to return an absolute position or a relative position.\r\n * @return {?} number of maximum position\r\n */\r\n function (relative) {\r\n if (relative === void 0) { relative = false; }\r\n /** @type {?} */\r\n var settings = this.settings;\r\n /** @type {?} */\r\n var maximum = this._coordinates.length;\r\n /** @type {?} */\r\n var iterator;\r\n /** @type {?} */\r\n var reciprocalItemsWidth;\r\n /** @type {?} */\r\n var elementWidth;\r\n if (settings.loop) {\r\n maximum = this._clones.length / 2 + this._items.length - 1;\r\n }\r\n else if (settings.autoWidth || settings.merge) {\r\n iterator = this._items.length;\r\n reciprocalItemsWidth = this.slidesData[--iterator].width;\r\n elementWidth = this._width;\r\n while (iterator--) {\r\n // it could be use this._items instead of this.slidesData;\r\n reciprocalItemsWidth += +this.slidesData[iterator].width + this.settings.margin;\r\n if (reciprocalItemsWidth > elementWidth) {\r\n break;\r\n }\r\n }\r\n maximum = iterator + 1;\r\n }\r\n else if (settings.center) {\r\n maximum = this._items.length - 1;\r\n }\r\n else {\r\n maximum = this._items.length - settings.items;\r\n }\r\n if (relative) {\r\n maximum -= this._clones.length / 2;\r\n }\r\n return Math.max(maximum, 0);\r\n };\r\n /**\r\n * Gets the minimum position for the current item.\r\n * @param relative Whether to return an absolute position or a relative position.\r\n * @returns number of minimum position\r\n */\r\n /**\r\n * Gets the minimum position for the current item.\r\n * @param {?=} relative Whether to return an absolute position or a relative position.\r\n * @return {?} number of minimum position\r\n */\r\n CarouselService.prototype.minimum = /**\r\n * Gets the minimum position for the current item.\r\n * @param {?=} relative Whether to return an absolute position or a relative position.\r\n * @return {?} number of minimum position\r\n */\r\n function (relative) {\r\n if (relative === void 0) { relative = false; }\r\n return relative ? 0 : this._clones.length / 2;\r\n };\r\n /**\r\n * Gets an item at the specified relative position.\r\n * @param position The relative position of the item.\r\n * @returns The item at the given position or all items if no position was given.\r\n */\r\n /**\r\n * Gets an item at the specified relative position.\r\n * @param {?=} position The relative position of the item.\r\n * @return {?} The item at the given position or all items if no position was given.\r\n */\r\n CarouselService.prototype.items = /**\r\n * Gets an item at the specified relative position.\r\n * @param {?=} position The relative position of the item.\r\n * @return {?} The item at the given position or all items if no position was given.\r\n */\r\n function (position) {\r\n if (position === undefined) {\r\n return this._items.slice();\r\n }\r\n position = this.normalize(position, true);\r\n return [this._items[position]];\r\n };\r\n /**\r\n * Gets an item at the specified relative position.\r\n * @param position The relative position of the item.\r\n * @returns The item at the given position or all items if no position was given.\r\n */\r\n /**\r\n * Gets an item at the specified relative position.\r\n * @param {?} position The relative position of the item.\r\n * @return {?} The item at the given position or all items if no position was given.\r\n */\r\n CarouselService.prototype.mergers = /**\r\n * Gets an item at the specified relative position.\r\n * @param {?} position The relative position of the item.\r\n * @return {?} The item at the given position or all items if no position was given.\r\n */\r\n function (position) {\r\n if (position === undefined) {\r\n return this._mergers.slice();\r\n }\r\n position = this.normalize(position, true);\r\n return this._mergers[position];\r\n };\r\n /**\r\n * Gets the absolute positions of clones for an item.\r\n * @param position The relative position of the item.\r\n * @returns The absolute positions of clones for the item or all if no position was given.\r\n */\r\n /**\r\n * Gets the absolute positions of clones for an item.\r\n * @param {?=} position The relative position of the item.\r\n * @return {?} The absolute positions of clones for the item or all if no position was given.\r\n */\r\n CarouselService.prototype.clones = /**\r\n * Gets the absolute positions of clones for an item.\r\n * @param {?=} position The relative position of the item.\r\n * @return {?} The absolute positions of clones for the item or all if no position was given.\r\n */\r\n function (position) {\r\n /** @type {?} */\r\n var odd = this._clones.length / 2;\r\n /** @type {?} */\r\n var even = odd + this._items.length;\r\n /** @type {?} */\r\n var map$$1 = (/**\r\n * @param {?} index\r\n * @return {?}\r\n */\r\n function (index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2; });\r\n if (position === undefined) {\r\n return this._clones.map((/**\r\n * @param {?} v\r\n * @param {?} i\r\n * @return {?}\r\n */\r\n function (v, i) { return map$$1(i); }));\r\n }\r\n return this._clones.map((/**\r\n * @param {?} v\r\n * @param {?} i\r\n * @return {?}\r\n */\r\n function (v, i) { return v === position ? map$$1(i) : null; })).filter((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) { return item; }));\r\n };\r\n /**\r\n * Sets the current animation speed.\r\n * @param speed The animation speed in milliseconds or nothing to leave it unchanged.\r\n * @returns The current animation speed in milliseconds.\r\n */\r\n /**\r\n * Sets the current animation speed.\r\n * @param {?=} speed The animation speed in milliseconds or nothing to leave it unchanged.\r\n * @return {?} The current animation speed in milliseconds.\r\n */\r\n CarouselService.prototype.speed = /**\r\n * Sets the current animation speed.\r\n * @param {?=} speed The animation speed in milliseconds or nothing to leave it unchanged.\r\n * @return {?} The current animation speed in milliseconds.\r\n */\r\n function (speed) {\r\n if (speed !== undefined) {\r\n this._speed = speed;\r\n }\r\n return this._speed;\r\n };\r\n /**\r\n * Gets the coordinate of an item.\r\n * @todo The name of this method is missleanding.\r\n * @param position The absolute position of the item within `minimum()` and `maximum()`.\r\n * @returns The coordinate of the item in pixel or all coordinates.\r\n */\r\n /**\r\n * Gets the coordinate of an item.\r\n * \\@todo The name of this method is missleanding.\r\n * @param {?=} position The absolute position of the item within `minimum()` and `maximum()`.\r\n * @return {?} The coordinate of the item in pixel or all coordinates.\r\n */\r\n CarouselService.prototype.coordinates = /**\r\n * Gets the coordinate of an item.\r\n * \\@todo The name of this method is missleanding.\r\n * @param {?=} position The absolute position of the item within `minimum()` and `maximum()`.\r\n * @return {?} The coordinate of the item in pixel or all coordinates.\r\n */\r\n function (position) {\r\n var _this = this;\r\n /** @type {?} */\r\n var multiplier = 1;\r\n /** @type {?} */\r\n var newPosition = position - 1;\r\n /** @type {?} */\r\n var coordinate;\r\n /** @type {?} */\r\n var result;\r\n if (position === undefined) {\r\n result = this._coordinates.map((/**\r\n * @param {?} item\r\n * @param {?} index\r\n * @return {?}\r\n */\r\n function (item, index) {\r\n return (/** @type {?} */ (_this.coordinates(index)));\r\n }));\r\n return result;\r\n }\r\n if (this.settings.center) {\r\n if (this.settings.rtl) {\r\n multiplier = -1;\r\n newPosition = position + 1;\r\n }\r\n coordinate = this._coordinates[position];\r\n coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier;\r\n }\r\n else {\r\n coordinate = this._coordinates[newPosition] || 0;\r\n }\r\n coordinate = Math.ceil(coordinate);\r\n return coordinate;\r\n };\r\n /**\r\n * Calculates the speed for a translation.\r\n * @param from The absolute position of the start item.\r\n * @param to The absolute position of the target item.\r\n * @param factor [factor=undefined] - The time factor in milliseconds.\r\n * @returns The time in milliseconds for the translation.\r\n */\r\n /**\r\n * Calculates the speed for a translation.\r\n * @private\r\n * @param {?} from The absolute position of the start item.\r\n * @param {?} to The absolute position of the target item.\r\n * @param {?=} factor [factor=undefined] - The time factor in milliseconds.\r\n * @return {?} The time in milliseconds for the translation.\r\n */\r\n CarouselService.prototype._duration = /**\r\n * Calculates the speed for a translation.\r\n * @private\r\n * @param {?} from The absolute position of the start item.\r\n * @param {?} to The absolute position of the target item.\r\n * @param {?=} factor [factor=undefined] - The time factor in milliseconds.\r\n * @return {?} The time in milliseconds for the translation.\r\n */\r\n function (from$$1, to, factor) {\r\n if (factor === 0) {\r\n return 0;\r\n }\r\n return Math.min(Math.max(Math.abs(to - from$$1), 1), 6) * Math.abs((+factor || this.settings.smartSpeed));\r\n };\r\n /**\r\n * Slides to the specified item.\r\n * @param position The position of the item.\r\n * @param speed The time in milliseconds for the transition.\r\n */\r\n /**\r\n * Slides to the specified item.\r\n * @param {?} position The position of the item.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.to = /**\r\n * Slides to the specified item.\r\n * @param {?} position The position of the item.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n function (position, speed) {\r\n var _this = this;\r\n /** @type {?} */\r\n var current = this.current();\r\n /** @type {?} */\r\n var revert = null;\r\n /** @type {?} */\r\n var distance = position - this.relative(current);\r\n /** @type {?} */\r\n var maximum = this.maximum();\r\n /** @type {?} */\r\n var delayForLoop = 0;\r\n /** @type {?} */\r\n var direction = +(distance > 0) - +(distance < 0);\r\n /** @type {?} */\r\n var items = this._items.length;\r\n /** @type {?} */\r\n var minimum = this.minimum();\r\n if (this.settings.loop) {\r\n if (!this.settings.rewind && Math.abs(distance) > items / 2) {\r\n distance += direction * -1 * items;\r\n }\r\n position = current + distance;\r\n revert = ((position - minimum) % items + items) % items + minimum;\r\n if (revert !== position && revert - distance <= maximum && revert - distance > 0) {\r\n current = revert - distance;\r\n position = revert;\r\n delayForLoop = 30;\r\n this.reset(current);\r\n this.sendChanges();\r\n }\r\n }\r\n else if (this.settings.rewind) {\r\n maximum += 1;\r\n position = (position % maximum + maximum) % maximum;\r\n }\r\n else {\r\n position = Math.max(minimum, Math.min(maximum, position));\r\n }\r\n setTimeout((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.speed(_this._duration(current, position, speed));\r\n _this.current(position);\r\n _this.update();\r\n }), delayForLoop);\r\n };\r\n /**\r\n * Slides to the next item.\r\n * @param speed The time in milliseconds for the transition.\r\n */\r\n /**\r\n * Slides to the next item.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.next = /**\r\n * Slides to the next item.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n function (speed) {\r\n speed = speed || false;\r\n this.to(this.relative(this.current()) + 1, speed);\r\n };\r\n /**\r\n * Slides to the previous item.\r\n * @param speed The time in milliseconds for the transition.\r\n */\r\n /**\r\n * Slides to the previous item.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.prev = /**\r\n * Slides to the previous item.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n function (speed) {\r\n speed = speed || false;\r\n this.to(this.relative(this.current()) - 1, speed);\r\n };\r\n /**\r\n * Handles the end of an animation.\r\n * @param event - The event arguments.\r\n */\r\n /**\r\n * Handles the end of an animation.\r\n * @param {?=} event - The event arguments.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.onTransitionEnd = /**\r\n * Handles the end of an animation.\r\n * @param {?=} event - The event arguments.\r\n * @return {?}\r\n */\r\n function (event) {\r\n // if css2 animation then event object is undefined\r\n if (event !== undefined) {\r\n // event.stopPropagation();\r\n // // Catch only owl-stage transitionEnd event\r\n // if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)\t) {\r\n // \treturn false;\r\n // }\r\n return false;\r\n }\r\n this.leave('animating');\r\n this._trigger('translated');\r\n };\r\n /**\r\n * Gets viewport width.\r\n * @returns - The width in pixel.\r\n */\r\n /**\r\n * Gets viewport width.\r\n * @private\r\n * @return {?} - The width in pixel.\r\n */\r\n CarouselService.prototype._viewport = /**\r\n * Gets viewport width.\r\n * @private\r\n * @return {?} - The width in pixel.\r\n */\r\n function () {\r\n /** @type {?} */\r\n var width;\r\n if (this._width) {\r\n width = this._width;\r\n }\r\n else {\r\n this.logger.log('Can not detect viewport width.');\r\n }\r\n return width;\r\n };\r\n /**\r\n * Sets _items\r\n * @param content The list of slides put into CarouselSlideDirectives.\r\n */\r\n /**\r\n * Sets _items\r\n * @param {?} content The list of slides put into CarouselSlideDirectives.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.setItems = /**\r\n * Sets _items\r\n * @param {?} content The list of slides put into CarouselSlideDirectives.\r\n * @return {?}\r\n */\r\n function (content) {\r\n this._items = content;\r\n };\r\n /**\r\n * Sets slidesData using this._items\r\n */\r\n /**\r\n * Sets slidesData using this._items\r\n * @private\r\n * @return {?}\r\n */\r\n CarouselService.prototype._defineSlidesData = /**\r\n * Sets slidesData using this._items\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n // Maybe creating and using loadMap would be better in LazyLoadService.\r\n // Hovewer in that case when 'resize' event fires, prop 'load' of all slides will get 'false' and such state of prop will be seen by View during its updating. Accordingly the code will remove slides's content from DOM even if it was loaded before.\r\n // Thus it would be needed to add that content into DOM again.\r\n // In order to avoid additional removing/adding loaded slides's content we use loadMap here and set restore state of prop 'load' before the View will get it.\r\n /** @type {?} */\r\n var loadMap;\r\n if (this.slidesData && this.slidesData.length) {\r\n loadMap = new Map();\r\n this.slidesData.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n if (item.load) {\r\n loadMap.set(item.id, item.load);\r\n }\r\n }));\r\n }\r\n this.slidesData = this._items.map((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n return {\r\n id: \"\" + slide.id,\r\n isActive: false,\r\n tplRef: slide.tplRef,\r\n dataMerge: slide.dataMerge,\r\n width: 0,\r\n isCloned: false,\r\n load: loadMap ? loadMap.get(slide.id) : false,\r\n hashFragment: slide.dataHash\r\n };\r\n }));\r\n };\r\n /**\r\n * Sets current classes for slide\r\n * @param slide Slide of carousel\r\n * @returns object with names of css-classes which are keys and true/false values\r\n */\r\n /**\r\n * Sets current classes for slide\r\n * @param {?} slide Slide of carousel\r\n * @return {?} object with names of css-classes which are keys and true/false values\r\n */\r\n CarouselService.prototype.setCurSlideClasses = /**\r\n * Sets current classes for slide\r\n * @param {?} slide Slide of carousel\r\n * @return {?} object with names of css-classes which are keys and true/false values\r\n */\r\n function (slide) {\r\n // CSS classes: added/removed per current state of component properties\r\n /** @type {?} */\r\n var currentClasses = {\r\n 'active': slide.isActive,\r\n 'center': slide.isCentered,\r\n 'cloned': slide.isCloned,\r\n 'animated': slide.isAnimated,\r\n 'owl-animated-in': slide.isDefAnimatedIn,\r\n 'owl-animated-out': slide.isDefAnimatedOut\r\n };\r\n if (this.settings.animateIn) {\r\n currentClasses[(/** @type {?} */ (this.settings.animateIn))] = slide.isCustomAnimatedIn;\r\n }\r\n if (this.settings.animateOut) {\r\n currentClasses[(/** @type {?} */ (this.settings.animateOut))] = slide.isCustomAnimatedOut;\r\n }\r\n return currentClasses;\r\n };\r\n /**\r\n * Operators to calculate right-to-left and left-to-right.\r\n * @param a - The left side operand.\r\n * @param o - The operator.\r\n * @param b - The right side operand.\r\n * @returns true/false meaning right-to-left or left-to-right\r\n */\r\n /**\r\n * Operators to calculate right-to-left and left-to-right.\r\n * @private\r\n * @param {?} a - The left side operand.\r\n * @param {?} o - The operator.\r\n * @param {?} b - The right side operand.\r\n * @return {?} true/false meaning right-to-left or left-to-right\r\n */\r\n CarouselService.prototype._op = /**\r\n * Operators to calculate right-to-left and left-to-right.\r\n * @private\r\n * @param {?} a - The left side operand.\r\n * @param {?} o - The operator.\r\n * @param {?} b - The right side operand.\r\n * @return {?} true/false meaning right-to-left or left-to-right\r\n */\r\n function (a, o, b) {\r\n /** @type {?} */\r\n var rtl = this.settings.rtl;\r\n switch (o) {\r\n case '<':\r\n return rtl ? a > b : a < b;\r\n case '>':\r\n return rtl ? a < b : a > b;\r\n case '>=':\r\n return rtl ? a <= b : a >= b;\r\n case '<=':\r\n return rtl ? a >= b : a <= b;\r\n default:\r\n break;\r\n }\r\n };\r\n /**\r\n * Triggers a public event.\r\n * @todo Remove `status`, `relatedTarget` should be used instead.\r\n * @param name The event name.\r\n * @param data The event data.\r\n * @param namespace The event namespace.\r\n * @param state The state which is associated with the event.\r\n * @param enter Indicates if the call enters the specified state or not.\r\n */\r\n /**\r\n * Triggers a public event.\r\n * \\@todo Remove `status`, `relatedTarget` should be used instead.\r\n * @private\r\n * @param {?} name The event name.\r\n * @param {?=} data The event data.\r\n * @param {?=} namespace The event namespace.\r\n * @param {?=} state The state which is associated with the event.\r\n * @param {?=} enter Indicates if the call enters the specified state or not.\r\n * @return {?}\r\n */\r\n CarouselService.prototype._trigger = /**\r\n * Triggers a public event.\r\n * \\@todo Remove `status`, `relatedTarget` should be used instead.\r\n * @private\r\n * @param {?} name The event name.\r\n * @param {?=} data The event data.\r\n * @param {?=} namespace The event namespace.\r\n * @param {?=} state The state which is associated with the event.\r\n * @param {?=} enter Indicates if the call enters the specified state or not.\r\n * @return {?}\r\n */\r\n function (name, data, namespace, state$$1, enter) {\r\n switch (name) {\r\n case 'initialized':\r\n this._initializedCarousel$.next(name);\r\n break;\r\n case 'change':\r\n this._changeSettingsCarousel$.next(data);\r\n break;\r\n case 'changed':\r\n this._changedSettingsCarousel$.next(data);\r\n break;\r\n case 'drag':\r\n this._dragCarousel$.next(name);\r\n break;\r\n case 'dragged':\r\n this._draggedCarousel$.next(name);\r\n break;\r\n case 'resize':\r\n this._resizeCarousel$.next(name);\r\n break;\r\n case 'resized':\r\n this._resizedCarousel$.next(name);\r\n break;\r\n case 'refresh':\r\n this._refreshCarousel$.next(name);\r\n break;\r\n case 'refreshed':\r\n this._refreshedCarousel$.next(name);\r\n break;\r\n case 'translate':\r\n this._translateCarousel$.next(name);\r\n break;\r\n case 'translated':\r\n this._translatedCarousel$.next(name);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n /**\r\n * Enters a state.\r\n * @param name - The state name.\r\n */\r\n /**\r\n * Enters a state.\r\n * @param {?} name - The state name.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.enter = /**\r\n * Enters a state.\r\n * @param {?} name - The state name.\r\n * @return {?}\r\n */\r\n function (name) {\r\n var _this = this;\r\n [name].concat(this._states.tags[name] || []).forEach((/**\r\n * @param {?} stateName\r\n * @return {?}\r\n */\r\n function (stateName) {\r\n if (_this._states.current[stateName] === undefined) {\r\n _this._states.current[stateName] = 0;\r\n }\r\n _this._states.current[stateName]++;\r\n }));\r\n };\r\n /**\r\n * Leaves a state.\r\n * @param name - The state name.\r\n */\r\n /**\r\n * Leaves a state.\r\n * @param {?} name - The state name.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.leave = /**\r\n * Leaves a state.\r\n * @param {?} name - The state name.\r\n * @return {?}\r\n */\r\n function (name) {\r\n var _this = this;\r\n [name].concat(this._states.tags[name] || []).forEach((/**\r\n * @param {?} stateName\r\n * @return {?}\r\n */\r\n function (stateName) {\r\n if (_this._states.current[stateName] === 0 || !!_this._states.current[stateName]) {\r\n _this._states.current[stateName]--;\r\n }\r\n }));\r\n };\r\n /**\r\n * Registers an event or state.\r\n * @param object - The event or state to register.\r\n */\r\n /**\r\n * Registers an event or state.\r\n * @param {?} object - The event or state to register.\r\n * @return {?}\r\n */\r\n CarouselService.prototype.register = /**\r\n * Registers an event or state.\r\n * @param {?} object - The event or state to register.\r\n * @return {?}\r\n */\r\n function (object) {\r\n var _this = this;\r\n if (object.type === Type.State) {\r\n if (!this._states.tags[object.name]) {\r\n this._states.tags[object.name] = object.tags;\r\n }\r\n else {\r\n this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags);\r\n }\r\n this._states.tags[object.name] = this._states.tags[object.name].filter((/**\r\n * @param {?} tag\r\n * @param {?} i\r\n * @return {?}\r\n */\r\n function (tag, i) {\r\n return _this._states.tags[object.name].indexOf(tag) === i;\r\n }));\r\n }\r\n };\r\n /**\r\n * Suppresses events.\r\n * @param events The events to suppress.\r\n */\r\n /**\r\n * Suppresses events.\r\n * @private\r\n * @param {?} events The events to suppress.\r\n * @return {?}\r\n */\r\n CarouselService.prototype._suppress = /**\r\n * Suppresses events.\r\n * @private\r\n * @param {?} events The events to suppress.\r\n * @return {?}\r\n */\r\n function (events) {\r\n var _this = this;\r\n events.forEach((/**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n function (event) {\r\n _this._supress[event] = true;\r\n }));\r\n };\r\n /**\r\n * Releases suppressed events.\r\n * @param events The events to release.\r\n */\r\n /**\r\n * Releases suppressed events.\r\n * @private\r\n * @param {?} events The events to release.\r\n * @return {?}\r\n */\r\n CarouselService.prototype._release = /**\r\n * Releases suppressed events.\r\n * @private\r\n * @param {?} events The events to release.\r\n * @return {?}\r\n */\r\n function (events) {\r\n var _this = this;\r\n events.forEach((/**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n function (event) {\r\n delete _this._supress[event];\r\n }));\r\n };\r\n /**\r\n * Gets unified pointer coordinates from event.\r\n * @todo #261\r\n * @param event The `mousedown` or `touchstart` event.\r\n * @returns Object Coords which contains `x` and `y` coordinates of current pointer position.\r\n */\r\n /**\r\n * Gets unified pointer coordinates from event.\r\n * \\@todo #261\r\n * @param {?} event The `mousedown` or `touchstart` event.\r\n * @return {?} Object Coords which contains `x` and `y` coordinates of current pointer position.\r\n */\r\n CarouselService.prototype.pointer = /**\r\n * Gets unified pointer coordinates from event.\r\n * \\@todo #261\r\n * @param {?} event The `mousedown` or `touchstart` event.\r\n * @return {?} Object Coords which contains `x` and `y` coordinates of current pointer position.\r\n */\r\n function (event) {\r\n /** @type {?} */\r\n var result = { x: null, y: null };\r\n event = event.originalEvent || event || window.event;\r\n event = event.touches && event.touches.length ?\r\n event.touches[0] : event.changedTouches && event.changedTouches.length ?\r\n event.changedTouches[0] : event;\r\n if (event.pageX) {\r\n result.x = event.pageX;\r\n result.y = event.pageY;\r\n }\r\n else {\r\n result.x = event.clientX;\r\n result.y = event.clientY;\r\n }\r\n return result;\r\n };\r\n /**\r\n * Determines if the input is a Number or something that can be coerced to a Number\r\n * @param number The input to be tested\r\n * @returns An indication if the input is a Number or can be coerced to a Number\r\n */\r\n /**\r\n * Determines if the input is a Number or something that can be coerced to a Number\r\n * @private\r\n * @param {?} number The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number\r\n */\r\n CarouselService.prototype._isNumeric = /**\r\n * Determines if the input is a Number or something that can be coerced to a Number\r\n * @private\r\n * @param {?} number The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number\r\n */\r\n function (number) {\r\n return !isNaN(parseFloat(number));\r\n };\r\n /**\r\n * Determines whether value is number or boolean type\r\n * @param value The input to be tested\r\n * @returns An indication if the input is a Number or can be coerced to a Number, or Boolean\r\n */\r\n /**\r\n * Determines whether value is number or boolean type\r\n * @private\r\n * @param {?} value The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number, or Boolean\r\n */\r\n CarouselService.prototype._isNumberOrBoolean = /**\r\n * Determines whether value is number or boolean type\r\n * @private\r\n * @param {?} value The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number, or Boolean\r\n */\r\n function (value) {\r\n return this._isNumeric(value) || typeof value === 'boolean';\r\n };\r\n /**\r\n * Determines whether value is number or string type\r\n * @param value The input to be tested\r\n * @returns An indication if the input is a Number or can be coerced to a Number, or String\r\n */\r\n /**\r\n * Determines whether value is number or string type\r\n * @private\r\n * @param {?} value The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number, or String\r\n */\r\n CarouselService.prototype._isNumberOrString = /**\r\n * Determines whether value is number or string type\r\n * @private\r\n * @param {?} value The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number, or String\r\n */\r\n function (value) {\r\n return this._isNumeric(value) || typeof value === 'string';\r\n };\r\n /**\r\n * Determines whether value is number or string type\r\n * @param value The input to be tested\r\n * @returns An indication if the input is a Number or can be coerced to a Number, or String\r\n */\r\n /**\r\n * Determines whether value is number or string type\r\n * @private\r\n * @param {?} value The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number, or String\r\n */\r\n CarouselService.prototype._isStringOrBoolean = /**\r\n * Determines whether value is number or string type\r\n * @private\r\n * @param {?} value The input to be tested\r\n * @return {?} An indication if the input is a Number or can be coerced to a Number, or String\r\n */\r\n function (value) {\r\n return typeof value === 'string' || typeof value === 'boolean';\r\n };\r\n /**\r\n * Gets the difference of two vectors.\r\n * @todo #261\r\n * @param first The first vector.\r\n * @param second- The second vector.\r\n * @returns The difference.\r\n */\r\n /**\r\n * Gets the difference of two vectors.\r\n * \\@todo #261\r\n * @param {?} first The first vector.\r\n * @param {?} second\r\n * @return {?} The difference.\r\n */\r\n CarouselService.prototype.difference = /**\r\n * Gets the difference of two vectors.\r\n * \\@todo #261\r\n * @param {?} first The first vector.\r\n * @param {?} second\r\n * @return {?} The difference.\r\n */\r\n function (first$$1, second) {\r\n return {\r\n x: first$$1.x - second.x,\r\n y: first$$1.y - second.y\r\n };\r\n };\r\n CarouselService.decorators = [\r\n { type: Injectable }\r\n ];\r\n CarouselService.ctorParameters = function () { return [\r\n { type: OwlLogger }\r\n ]; };\r\n return CarouselService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar NavigationService = /** @class */ (function () {\r\n function NavigationService(carouselService) {\r\n this.carouselService = carouselService;\r\n /**\r\n * Indicates whether the plugin is initialized or not.\r\n */\r\n this._initialized = false;\r\n /**\r\n * The current paging indexes.\r\n */\r\n this._pages = [];\r\n /**\r\n * Data for navigation elements of the user interface.\r\n */\r\n this._navData = {\r\n disabled: false,\r\n prev: {\r\n disabled: false,\r\n htmlText: ''\r\n },\r\n next: {\r\n disabled: false,\r\n htmlText: ''\r\n },\r\n };\r\n /**\r\n * Data for dot elements of the user interface.\r\n */\r\n this._dotsData = {\r\n disabled: false,\r\n dots: []\r\n };\r\n this.spyDataStreams();\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n NavigationService.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.navSubscription.unsubscribe();\r\n };\r\n /**\r\n * Defines Observables which service must observe\r\n */\r\n /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n NavigationService.prototype.spyDataStreams = /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var initializedCarousel$ = this.carouselService.getInitializedState().pipe(tap((/**\r\n * @param {?} state\r\n * @return {?}\r\n */\r\n function (state$$1) {\r\n _this.initialize();\r\n _this._updateNavPages();\r\n _this.draw();\r\n _this.update();\r\n _this.carouselService.sendChanges();\r\n })));\r\n // mostly changes in carouselService and carousel at all causes carouselService.to(). It moves stage right-left by its code and calling needed functions\r\n // Thus this method by calling carouselService.current(position) notifies about changes\r\n /** @type {?} */\r\n var changedSettings$ = this.carouselService.getChangedState().pipe(filter((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) { return data.property.name === 'position'; })), tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n _this.update();\r\n // should be the call of the function written at the end of comment\r\n // but the method carouselServive.to() has setTimeout(f, 0) which contains carouselServive.update() which calls sendChanges() method.\r\n // carouselService.navData and carouselService.dotsData update earlier than carouselServive.update() gets called\r\n // updates of carouselService.navData and carouselService.dotsData are being happening withing carouselService.current(position) method which calls next() of _changedSettingsCarousel$\r\n // carouselService.current(position) is being calling earlier than carouselServive.update();\r\n // this.carouselService.sendChanges();\r\n })));\r\n /** @type {?} */\r\n var refreshedCarousel$ = this.carouselService.getRefreshedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this._updateNavPages();\r\n _this.draw();\r\n _this.update();\r\n _this.carouselService.sendChanges();\r\n })));\r\n /** @type {?} */\r\n var navMerge$ = merge(initializedCarousel$, changedSettings$, refreshedCarousel$);\r\n this.navSubscription = navMerge$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * Initializes the layout of the plugin and extends the carousel.\r\n */\r\n /**\r\n * Initializes the layout of the plugin and extends the carousel.\r\n * @return {?}\r\n */\r\n NavigationService.prototype.initialize = /**\r\n * Initializes the layout of the plugin and extends the carousel.\r\n * @return {?}\r\n */\r\n function () {\r\n this._navData.disabled = true;\r\n this._navData.prev.htmlText = this.carouselService.settings.navText[0];\r\n this._navData.next.htmlText = this.carouselService.settings.navText[1];\r\n this._dotsData.disabled = true;\r\n this.carouselService.navData = this._navData;\r\n this.carouselService.dotsData = this._dotsData;\r\n };\r\n /**\r\n * Calculates internal states and updates prop _pages\r\n */\r\n /**\r\n * Calculates internal states and updates prop _pages\r\n * @private\r\n * @return {?}\r\n */\r\n NavigationService.prototype._updateNavPages = /**\r\n * Calculates internal states and updates prop _pages\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var i;\r\n /** @type {?} */\r\n var j;\r\n /** @type {?} */\r\n var k;\r\n /** @type {?} */\r\n var lower = this.carouselService.clones().length / 2;\r\n /** @type {?} */\r\n var upper = lower + this.carouselService.items().length;\r\n /** @type {?} */\r\n var maximum = this.carouselService.maximum(true);\r\n /** @type {?} */\r\n var pages = [];\r\n /** @type {?} */\r\n var settings = this.carouselService.settings;\r\n /** @type {?} */\r\n var size = settings.center || settings.autoWidth || settings.dotsData\r\n ? 1 : settings.dotsEach || settings.items;\r\n size = +size;\r\n if (settings.slideBy !== 'page') {\r\n settings.slideBy = Math.min(+settings.slideBy, settings.items);\r\n }\r\n if (settings.dots || settings.slideBy === 'page') {\r\n for (i = lower, j = 0, k = 0; i < upper; i++) {\r\n if (j >= size || j === 0) {\r\n pages.push({\r\n start: Math.min(maximum, i - lower),\r\n end: i - lower + size - 1\r\n });\r\n if (Math.min(maximum, i - lower) === maximum) {\r\n break;\r\n }\r\n j = 0, ++k;\r\n }\r\n j += (/** @type {?} */ (this.carouselService.mergers(this.carouselService.relative(i))));\r\n }\r\n }\r\n this._pages = pages;\r\n };\r\n /**\r\n * Draws the user interface.\r\n * @todo The option `dotsData` wont work.\r\n */\r\n /**\r\n * Draws the user interface.\r\n * \\@todo The option `dotsData` wont work.\r\n * @return {?}\r\n */\r\n NavigationService.prototype.draw = /**\r\n * Draws the user interface.\r\n * \\@todo The option `dotsData` wont work.\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var difference;\r\n /** @type {?} */\r\n var settings = this.carouselService.settings;\r\n /** @type {?} */\r\n var items = this.carouselService.items();\r\n /** @type {?} */\r\n var disabled = items.length <= settings.items;\r\n this._navData.disabled = !settings.nav || disabled;\r\n this._dotsData.disabled = !settings.dots || disabled;\r\n if (settings.dots) {\r\n difference = this._pages.length - this._dotsData.dots.length;\r\n if (settings.dotsData && difference !== 0) {\r\n this._dotsData.dots = [];\r\n items.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n _this._dotsData.dots.push({\r\n active: false,\r\n id: \"dot-\" + item.id,\r\n innerContent: item.dotContent,\r\n showInnerContent: true\r\n });\r\n }));\r\n }\r\n else if (difference > 0) {\r\n /** @type {?} */\r\n var startI = this._dotsData.dots.length > 0 ? this._dotsData.dots.length : 0;\r\n for (var i = 0; i < difference; i++) {\r\n this._dotsData.dots.push({\r\n active: false,\r\n id: \"dot-\" + (i + startI),\r\n innerContent: '',\r\n showInnerContent: false\r\n });\r\n }\r\n }\r\n else if (difference < 0) {\r\n this._dotsData.dots.splice(difference, Math.abs(difference));\r\n }\r\n }\r\n this.carouselService.navData = this._navData;\r\n this.carouselService.dotsData = this._dotsData;\r\n };\r\n /**\r\n * Updates navigation buttons's and dots's states\r\n */\r\n /**\r\n * Updates navigation buttons's and dots's states\r\n * @return {?}\r\n */\r\n NavigationService.prototype.update = /**\r\n * Updates navigation buttons's and dots's states\r\n * @return {?}\r\n */\r\n function () {\r\n this._updateNavButtons();\r\n this._updateDots();\r\n };\r\n /**\r\n * Changes state of nav buttons (disabled, enabled)\r\n */\r\n /**\r\n * Changes state of nav buttons (disabled, enabled)\r\n * @private\r\n * @return {?}\r\n */\r\n NavigationService.prototype._updateNavButtons = /**\r\n * Changes state of nav buttons (disabled, enabled)\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var settings = this.carouselService.settings;\r\n /** @type {?} */\r\n var loop = settings.loop || settings.rewind;\r\n /** @type {?} */\r\n var index = this.carouselService.relative(this.carouselService.current());\r\n if (settings.nav) {\r\n this._navData.prev.disabled = !loop && index <= this.carouselService.minimum(true);\r\n this._navData.next.disabled = !loop && index >= this.carouselService.maximum(true);\r\n }\r\n this.carouselService.navData = this._navData;\r\n };\r\n /**\r\n * Changes active dot if page becomes changed\r\n */\r\n /**\r\n * Changes active dot if page becomes changed\r\n * @private\r\n * @return {?}\r\n */\r\n NavigationService.prototype._updateDots = /**\r\n * Changes active dot if page becomes changed\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var curActiveDotI;\r\n if (!this.carouselService.settings.dots) {\r\n return;\r\n }\r\n this._dotsData.dots.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) {\r\n if (item.active === true) {\r\n item.active = false;\r\n }\r\n }));\r\n curActiveDotI = this._current();\r\n if (this._dotsData.dots.length) {\r\n this._dotsData.dots[curActiveDotI].active = true;\r\n }\r\n this.carouselService.dotsData = this._dotsData;\r\n };\r\n /**\r\n * Gets the current page position of the carousel.\r\n * @returns the current page position of the carousel\r\n */\r\n /**\r\n * Gets the current page position of the carousel.\r\n * @private\r\n * @return {?} the current page position of the carousel\r\n */\r\n NavigationService.prototype._current = /**\r\n * Gets the current page position of the carousel.\r\n * @private\r\n * @return {?} the current page position of the carousel\r\n */\r\n function () {\r\n /** @type {?} */\r\n var current = this.carouselService.relative(this.carouselService.current());\r\n /** @type {?} */\r\n var finalCurrent;\r\n /** @type {?} */\r\n var pages = this._pages.filter((/**\r\n * @param {?} page\r\n * @param {?} index\r\n * @return {?}\r\n */\r\n function (page, index) {\r\n return page.start <= current && page.end >= current;\r\n })).pop();\r\n finalCurrent = this._pages.findIndex((/**\r\n * @param {?} page\r\n * @return {?}\r\n */\r\n function (page) {\r\n return page.start === pages.start && page.end === pages.end;\r\n }));\r\n return finalCurrent;\r\n };\r\n /**\r\n * Gets the current succesor/predecessor position.\r\n * @param sussessor position of slide\r\n * @returns the current succesor/predecessor position\r\n */\r\n /**\r\n * Gets the current succesor/predecessor position.\r\n * @private\r\n * @param {?} successor\r\n * @return {?} the current succesor/predecessor position\r\n */\r\n NavigationService.prototype._getPosition = /**\r\n * Gets the current succesor/predecessor position.\r\n * @private\r\n * @param {?} successor\r\n * @return {?} the current succesor/predecessor position\r\n */\r\n function (successor) {\r\n /** @type {?} */\r\n var position;\r\n /** @type {?} */\r\n var length;\r\n /** @type {?} */\r\n var settings = this.carouselService.settings;\r\n if (settings.slideBy === 'page') {\r\n position = this._current();\r\n length = this._pages.length;\r\n successor ? ++position : --position;\r\n position = this._pages[((position % length) + length) % length].start;\r\n }\r\n else {\r\n position = this.carouselService.relative(this.carouselService.current());\r\n length = this.carouselService.items().length;\r\n successor ? position += +settings.slideBy : position -= +settings.slideBy;\r\n }\r\n return position;\r\n };\r\n /**\r\n * Slides to the next item or page.\r\n * @param speed The time in milliseconds for the transition.\r\n */\r\n /**\r\n * Slides to the next item or page.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n NavigationService.prototype.next = /**\r\n * Slides to the next item or page.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n function (speed) {\r\n this.carouselService.to(this._getPosition(true), speed);\r\n };\r\n /**\r\n * Slides to the previous item or page.\r\n * @param speed The time in milliseconds for the transition.\r\n */\r\n /**\r\n * Slides to the previous item or page.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n NavigationService.prototype.prev = /**\r\n * Slides to the previous item or page.\r\n * @param {?} speed The time in milliseconds for the transition.\r\n * @return {?}\r\n */\r\n function (speed) {\r\n this.carouselService.to(this._getPosition(false), speed);\r\n };\r\n /**\r\n * Slides to the specified item or page.\r\n * @param position - The position of the item or page.\r\n * @param speed - The time in milliseconds for the transition.\r\n * @param standard - Whether to use the standard behaviour or not. Default meaning false\r\n */\r\n /**\r\n * Slides to the specified item or page.\r\n * @param {?} position - The position of the item or page.\r\n * @param {?} speed - The time in milliseconds for the transition.\r\n * @param {?=} standard - Whether to use the standard behaviour or not. Default meaning false\r\n * @return {?}\r\n */\r\n NavigationService.prototype.to = /**\r\n * Slides to the specified item or page.\r\n * @param {?} position - The position of the item or page.\r\n * @param {?} speed - The time in milliseconds for the transition.\r\n * @param {?=} standard - Whether to use the standard behaviour or not. Default meaning false\r\n * @return {?}\r\n */\r\n function (position, speed, standard) {\r\n /** @type {?} */\r\n var length;\r\n if (!standard && this._pages.length) {\r\n length = this._pages.length;\r\n this.carouselService.to(this._pages[((position % length) + length) % length].start, speed);\r\n }\r\n else {\r\n this.carouselService.to(position, speed);\r\n }\r\n };\r\n /**\r\n * Moves carousel after user's clicking on any dots\r\n */\r\n /**\r\n * Moves carousel after user's clicking on any dots\r\n * @param {?} dotId\r\n * @return {?}\r\n */\r\n NavigationService.prototype.moveByDot = /**\r\n * Moves carousel after user's clicking on any dots\r\n * @param {?} dotId\r\n * @return {?}\r\n */\r\n function (dotId) {\r\n /** @type {?} */\r\n var index = this._dotsData.dots.findIndex((/**\r\n * @param {?} dot\r\n * @return {?}\r\n */\r\n function (dot) { return dotId === dot.id; }));\r\n this.to(index, this.carouselService.settings.dotsSpeed);\r\n };\r\n /**\r\n * rewinds carousel to slide with needed id\r\n * @param id id of slide\r\n */\r\n /**\r\n * rewinds carousel to slide with needed id\r\n * @param {?} id id of slide\r\n * @return {?}\r\n */\r\n NavigationService.prototype.toSlideById = /**\r\n * rewinds carousel to slide with needed id\r\n * @param {?} id id of slide\r\n * @return {?}\r\n */\r\n function (id) {\r\n /** @type {?} */\r\n var position = this.carouselService.slidesData.findIndex((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) { return slide.id === id && slide.isCloned === false; }));\r\n if (position === -1 || position === this.carouselService.current()) {\r\n return;\r\n }\r\n this.carouselService.to(this.carouselService.relative(position), false);\r\n };\r\n NavigationService.decorators = [\r\n { type: Injectable }\r\n ];\r\n NavigationService.ctorParameters = function () { return [\r\n { type: CarouselService }\r\n ]; };\r\n return NavigationService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n/**\r\n * Create a new injection token for injecting the window into a component.\r\n * @type {?}\r\n */\r\nvar WINDOW = new InjectionToken('WindowToken');\r\n/**\r\n * Define abstract class for obtaining reference to the global window object.\r\n * @abstract\r\n */\r\nvar /**\r\n * Define abstract class for obtaining reference to the global window object.\r\n * @abstract\r\n */\r\nWindowRef = /** @class */ (function () {\r\n /**\r\n * Define abstract class for obtaining reference to the global window object.\r\n */\r\n function WindowRef() {\r\n }\r\n Object.defineProperty(WindowRef.prototype, \"nativeWindow\", {\r\n get: /**\r\n * @return {?}\r\n */\r\n function () {\r\n throw new Error('Not implemented.');\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return WindowRef;\r\n}());\r\n/**\r\n * Define class that implements the abstract class and returns the native window object.\r\n */\r\nvar /**\r\n * Define class that implements the abstract class and returns the native window object.\r\n */\r\nBrowserWindowRef = /** @class */ (function (_super) {\r\n __extends(BrowserWindowRef, _super);\r\n function BrowserWindowRef() {\r\n return _super.call(this) || this;\r\n }\r\n Object.defineProperty(BrowserWindowRef.prototype, \"nativeWindow\", {\r\n /**\r\n * @returns window object\r\n */\r\n get: /**\r\n * @return {?} window object\r\n */\r\n function () {\r\n return window;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BrowserWindowRef;\r\n}(WindowRef));\r\n/**\r\n * Create an factory function that returns the native window object.\r\n * @param {?} browserWindowRef Native window object\r\n * @param {?} platformId id of platform\r\n * @return {?} type of platform of empty object\r\n */\r\nfunction windowFactory(browserWindowRef, platformId) {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserWindowRef.nativeWindow;\r\n }\r\n /** @type {?} */\r\n var obj = {\r\n setTimeout: (/**\r\n * @param {?} func\r\n * @param {?} time\r\n * @return {?}\r\n */\r\n function (func, time) { }),\r\n clearTimeout: (/**\r\n * @param {?} a\r\n * @return {?}\r\n */\r\n function (a) { })\r\n };\r\n return obj;\r\n}\r\n/**\r\n * Create a injectable provider for the WindowRef token that uses the BrowserWindowRef class.\r\n * @type {?}\r\n */\r\nvar browserWindowProvider = {\r\n provide: WindowRef,\r\n useClass: BrowserWindowRef\r\n};\r\n/**\r\n * Create an injectable provider that uses the windowFactory function for returning the native window object.\r\n * @type {?}\r\n */\r\nvar windowProvider = {\r\n provide: WINDOW,\r\n useFactory: windowFactory,\r\n deps: [WindowRef, PLATFORM_ID]\r\n};\r\n/**\r\n * Create an array of providers.\r\n * @type {?}\r\n */\r\nvar WINDOW_PROVIDERS = [browserWindowProvider, windowProvider];\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n/**\r\n * Create a new injection token for injecting the Document into a component.\r\n * @type {?}\r\n */\r\nvar DOCUMENT = new InjectionToken('DocumentToken');\r\n/**\r\n * Define abstract class for obtaining reference to the global Document object.\r\n * @abstract\r\n */\r\nvar /**\r\n * Define abstract class for obtaining reference to the global Document object.\r\n * @abstract\r\n */\r\nDocumentRef = /** @class */ (function () {\r\n /**\r\n * Define abstract class for obtaining reference to the global Document object.\r\n */\r\n function DocumentRef() {\r\n }\r\n Object.defineProperty(DocumentRef.prototype, \"nativeDocument\", {\r\n get: /**\r\n * @return {?}\r\n */\r\n function () {\r\n throw new Error('Not implemented.');\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return DocumentRef;\r\n}());\r\n/**\r\n * Define class that implements the abstract class and returns the native Document object.\r\n */\r\nvar /**\r\n * Define class that implements the abstract class and returns the native Document object.\r\n */\r\nBrowserDocumentRef = /** @class */ (function (_super) {\r\n __extends(BrowserDocumentRef, _super);\r\n function BrowserDocumentRef() {\r\n return _super.call(this) || this;\r\n }\r\n Object.defineProperty(BrowserDocumentRef.prototype, \"nativeDocument\", {\r\n /**\r\n * @returns Document object\r\n */\r\n get: /**\r\n * @return {?} Document object\r\n */\r\n function () {\r\n return document;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BrowserDocumentRef;\r\n}(DocumentRef));\r\n/**\r\n * Create an factory function that returns the native Document object.\r\n * @param {?} browserDocumentRef Native Document object\r\n * @param {?} platformId id of platform\r\n * @return {?} type of platform of empty object\r\n */\r\nfunction documentFactory(browserDocumentRef, platformId) {\r\n if (isPlatformBrowser(platformId)) {\r\n return browserDocumentRef.nativeDocument;\r\n }\r\n /** @type {?} */\r\n var doc = {\r\n hidden: false,\r\n visibilityState: 'visible'\r\n };\r\n return doc;\r\n}\r\n/**\r\n * Create a injectable provider for the DocumentRef token that uses the BrowserDocumentRef class.\r\n * @type {?}\r\n */\r\nvar browserDocumentProvider = {\r\n provide: DocumentRef,\r\n useClass: BrowserDocumentRef\r\n};\r\n/**\r\n * Create an injectable provider that uses the DocumentFactory function for returning the native Document object.\r\n * @type {?}\r\n */\r\nvar documentProvider = {\r\n provide: DOCUMENT,\r\n useFactory: documentFactory,\r\n deps: [DocumentRef, PLATFORM_ID]\r\n};\r\n/**\r\n * Create an array of providers.\r\n * @type {?}\r\n */\r\nvar DOCUMENT_PROVIDERS = [browserDocumentProvider, documentProvider];\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar AutoplayService = /** @class */ (function () {\r\n function AutoplayService(carouselService, winRef, docRef) {\r\n this.carouselService = carouselService;\r\n /**\r\n * The autoplay timeout.\r\n */\r\n this._timeout = null;\r\n /**\r\n * Indicates whenever the autoplay is paused.\r\n */\r\n this._paused = false;\r\n this.winRef = (/** @type {?} */ (winRef));\r\n this.docRef = (/** @type {?} */ (docRef));\r\n this.spyDataStreams();\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.autoplaySubscription.unsubscribe();\r\n };\r\n /**\r\n * Defines Observables which service must observe\r\n */\r\n /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.spyDataStreams = /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var initializedCarousel$ = this.carouselService.getInitializedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n if (_this.carouselService.settings.autoplay) {\r\n _this.play();\r\n }\r\n })));\r\n /** @type {?} */\r\n var changedSettings$ = this.carouselService.getChangedState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n _this._handleChangeObservable(data);\r\n })));\r\n /** @type {?} */\r\n var resized$ = this.carouselService.getResizedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n if (_this.carouselService.settings.autoplay) {\r\n _this.play();\r\n }\r\n else {\r\n _this.stop();\r\n }\r\n })))\r\n // original Autoplay Plugin has listeners on play.owl.core and stop.owl.core events.\r\n // They are triggered by Video Plugin\r\n ;\r\n // original Autoplay Plugin has listeners on play.owl.core and stop.owl.core events.\r\n // They are triggered by Video Plugin\r\n /** @type {?} */\r\n var autoplayMerge$ = merge(initializedCarousel$, changedSettings$, resized$);\r\n this.autoplaySubscription = autoplayMerge$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * Starts the autoplay.\r\n * @param timeout The interval before the next animation starts.\r\n * @param speed The animation speed for the animations.\r\n */\r\n /**\r\n * Starts the autoplay.\r\n * @param {?=} timeout The interval before the next animation starts.\r\n * @param {?=} speed The animation speed for the animations.\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.play = /**\r\n * Starts the autoplay.\r\n * @param {?=} timeout The interval before the next animation starts.\r\n * @param {?=} speed The animation speed for the animations.\r\n * @return {?}\r\n */\r\n function (timeout, speed) {\r\n if (this._paused) {\r\n this._paused = false;\r\n this._setAutoPlayInterval(1);\r\n }\r\n if (this.carouselService.is('rotating')) {\r\n return;\r\n }\r\n this.carouselService.enter('rotating');\r\n this._setAutoPlayInterval();\r\n };\r\n /**\r\n * Gets a new timeout\r\n * @param timeout - The interval before the next animation starts.\r\n * @param speed - The animation speed for the animations.\r\n * @return\r\n */\r\n /**\r\n * Gets a new timeout\r\n * @private\r\n * @param {?=} timeout - The interval before the next animation starts.\r\n * @param {?=} speed - The animation speed for the animations.\r\n * @return {?}\r\n */\r\n AutoplayService.prototype._getNextTimeout = /**\r\n * Gets a new timeout\r\n * @private\r\n * @param {?=} timeout - The interval before the next animation starts.\r\n * @param {?=} speed - The animation speed for the animations.\r\n * @return {?}\r\n */\r\n function (timeout, speed) {\r\n var _this = this;\r\n if (this._timeout) {\r\n this.winRef.clearTimeout(this._timeout);\r\n }\r\n this._isArtificialAutoplayTimeout = timeout ? true : false;\r\n return this.winRef.setTimeout((/**\r\n * @return {?}\r\n */\r\n function () {\r\n if (_this._paused || _this.carouselService.is('busy') || _this.carouselService.is('interacting') || _this.docRef.hidden) {\r\n return;\r\n }\r\n _this.carouselService.next(speed || _this.carouselService.settings.autoplaySpeed);\r\n }), timeout || this.carouselService.settings.autoplayTimeout);\r\n };\r\n /**\r\n * Sets autoplay in motion.\r\n */\r\n /**\r\n * Sets autoplay in motion.\r\n * @private\r\n * @param {?=} timeout\r\n * @return {?}\r\n */\r\n AutoplayService.prototype._setAutoPlayInterval = /**\r\n * Sets autoplay in motion.\r\n * @private\r\n * @param {?=} timeout\r\n * @return {?}\r\n */\r\n function (timeout) {\r\n this._timeout = this._getNextTimeout(timeout);\r\n };\r\n /**\r\n * Stops the autoplay.\r\n */\r\n /**\r\n * Stops the autoplay.\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.stop = /**\r\n * Stops the autoplay.\r\n * @return {?}\r\n */\r\n function () {\r\n if (!this.carouselService.is('rotating')) {\r\n return;\r\n }\r\n this._paused = true;\r\n this.winRef.clearTimeout(this._timeout);\r\n this.carouselService.leave('rotating');\r\n };\r\n /**\r\n * Stops the autoplay.\r\n */\r\n /**\r\n * Stops the autoplay.\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.pause = /**\r\n * Stops the autoplay.\r\n * @return {?}\r\n */\r\n function () {\r\n if (!this.carouselService.is('rotating')) {\r\n return;\r\n }\r\n this._paused = true;\r\n };\r\n /**\r\n * Manages by autoplaying according to data passed by _changedSettingsCarousel$ Obsarvable\r\n * @param data object with current position of carousel and type of change\r\n */\r\n /**\r\n * Manages by autoplaying according to data passed by _changedSettingsCarousel$ Obsarvable\r\n * @private\r\n * @param {?} data object with current position of carousel and type of change\r\n * @return {?}\r\n */\r\n AutoplayService.prototype._handleChangeObservable = /**\r\n * Manages by autoplaying according to data passed by _changedSettingsCarousel$ Obsarvable\r\n * @private\r\n * @param {?} data object with current position of carousel and type of change\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (data.property.name === 'settings') {\r\n if (this.carouselService.settings.autoplay) {\r\n this.play();\r\n }\r\n else {\r\n this.stop();\r\n }\r\n }\r\n else if (data.property.name === 'position') {\r\n //console.log('play?', e);\r\n if (this.carouselService.settings.autoplay) {\r\n this._setAutoPlayInterval();\r\n }\r\n }\r\n };\r\n /**\r\n * Starts autoplaying of the carousel in the case when user leaves the carousel before it starts translateing (moving)\r\n */\r\n /**\r\n * Starts autoplaying of the carousel in the case when user leaves the carousel before it starts translateing (moving)\r\n * @private\r\n * @return {?}\r\n */\r\n AutoplayService.prototype._playAfterTranslated = /**\r\n * Starts autoplaying of the carousel in the case when user leaves the carousel before it starts translateing (moving)\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n of('translated').pipe(switchMap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) { return _this.carouselService.getTranslatedState(); })), first(), filter((/**\r\n * @return {?}\r\n */\r\n function () { return _this._isArtificialAutoplayTimeout; })), tap((/**\r\n * @return {?}\r\n */\r\n function () { return _this._setAutoPlayInterval(); }))).subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * Starts pausing\r\n */\r\n /**\r\n * Starts pausing\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.startPausing = /**\r\n * Starts pausing\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is('rotating')) {\r\n this.pause();\r\n }\r\n };\r\n /**\r\n * Starts playing after mouse leaves carousel\r\n */\r\n /**\r\n * Starts playing after mouse leaves carousel\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.startPlayingMouseLeave = /**\r\n * Starts playing after mouse leaves carousel\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is('rotating')) {\r\n this.play();\r\n this._playAfterTranslated();\r\n }\r\n };\r\n /**\r\n * Starts playing after touch ends\r\n */\r\n /**\r\n * Starts playing after touch ends\r\n * @return {?}\r\n */\r\n AutoplayService.prototype.startPlayingTouchEnd = /**\r\n * Starts playing after touch ends\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.carouselService.settings.autoplayHoverPause && this.carouselService.is('rotating')) {\r\n this.play();\r\n this._playAfterTranslated();\r\n }\r\n };\r\n AutoplayService.decorators = [\r\n { type: Injectable }\r\n ];\r\n AutoplayService.ctorParameters = function () { return [\r\n { type: CarouselService },\r\n { type: undefined, decorators: [{ type: Inject, args: [WINDOW,] }] },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n ]; };\r\n return AutoplayService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar LazyLoadService = /** @class */ (function () {\r\n function LazyLoadService(carouselService) {\r\n this.carouselService = carouselService;\r\n this.spyDataStreams();\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n LazyLoadService.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.lazyLoadSubscription.unsubscribe();\r\n };\r\n /**\r\n * Defines Observables which service must observe\r\n */\r\n /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n LazyLoadService.prototype.spyDataStreams = /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var initializedCarousel$ = this.carouselService.getInitializedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var isLazyLoad = _this.carouselService.settings && !_this.carouselService.settings.lazyLoad;\r\n _this.carouselService.slidesData.forEach((/**\r\n * @param {?} item\r\n * @return {?}\r\n */\r\n function (item) { return item.load = isLazyLoad ? true : false; }));\r\n })));\r\n /** @type {?} */\r\n var changeSettings$ = this.carouselService.getChangeState();\r\n /** @type {?} */\r\n var resizedCarousel$ = this.carouselService.getResizedState();\r\n /** @type {?} */\r\n var lazyLoadMerge$ = merge(initializedCarousel$, changeSettings$, resizedCarousel$).pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) { return _this._defineLazyLoadSlides(data); })));\r\n this.lazyLoadSubscription = lazyLoadMerge$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * @private\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n LazyLoadService.prototype._defineLazyLoadSlides = /**\r\n * @private\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n var _this = this;\r\n if (!this.carouselService.settings || !this.carouselService.settings.lazyLoad) {\r\n return;\r\n }\r\n if ((data.property && data.property.name === 'position') || data === 'initialized' || data === \"resized\") {\r\n /** @type {?} */\r\n var settings = this.carouselService.settings;\r\n /** @type {?} */\r\n var clones = this.carouselService.clones().length;\r\n /** @type {?} */\r\n var n = (settings.center && Math.ceil(settings.items / 2) || settings.items);\r\n /** @type {?} */\r\n var i = ((settings.center && n * -1) || 0);\r\n /** @type {?} */\r\n var position = (data.property && data.property.value !== undefined ? data.property.value : this.carouselService.current()) + i;\r\n // load = $.proxy(function(i, v) { this.load(v) }, this);\r\n //TODO: Need documentation for this new option\r\n if (settings.lazyLoadEager > 0) {\r\n n += settings.lazyLoadEager;\r\n // If the carousel is looping also preload images that are to the \"left\"\r\n if (settings.loop) {\r\n position -= settings.lazyLoadEager;\r\n n++;\r\n }\r\n }\r\n while (i++ < n) {\r\n this._load(clones / 2 + this.carouselService.relative(position));\r\n if (clones) {\r\n this.carouselService.clones(this.carouselService.relative(position)).forEach((/**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n function (value) { return _this._load(value); }));\r\n }\r\n position++;\r\n }\r\n }\r\n };\r\n /**\r\n * Loads all resources of an item at the specified position.\r\n * @param position - The absolute position of the item.\r\n */\r\n /**\r\n * Loads all resources of an item at the specified position.\r\n * @private\r\n * @param {?} position - The absolute position of the item.\r\n * @return {?}\r\n */\r\n LazyLoadService.prototype._load = /**\r\n * Loads all resources of an item at the specified position.\r\n * @private\r\n * @param {?} position - The absolute position of the item.\r\n * @return {?}\r\n */\r\n function (position) {\r\n if (this.carouselService.slidesData[position].load) {\r\n return;\r\n }\r\n this.carouselService.slidesData[position].load = true;\r\n };\r\n LazyLoadService.decorators = [\r\n { type: Injectable }\r\n ];\r\n LazyLoadService.ctorParameters = function () { return [\r\n { type: CarouselService }\r\n ]; };\r\n return LazyLoadService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar AnimateService = /** @class */ (function () {\r\n function AnimateService(carouselService) {\r\n this.carouselService = carouselService;\r\n /**\r\n * s\r\n */\r\n this.swapping = true;\r\n /**\r\n * active slide before translating\r\n */\r\n this.previous = undefined;\r\n /**\r\n * new active slide after translating\r\n */\r\n this.next = undefined;\r\n this.spyDataStreams();\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n AnimateService.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.animateSubscription.unsubscribe();\r\n };\r\n /**\r\n * Defines Observables which service must observe\r\n */\r\n /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n AnimateService.prototype.spyDataStreams = /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var changeSettings$ = this.carouselService.getChangeState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (data.property.name === 'position') {\r\n _this.previous = _this.carouselService.current();\r\n _this.next = data.property.value;\r\n }\r\n })));\r\n /** @type {?} */\r\n var dragCarousel$ = this.carouselService.getDragState();\r\n /** @type {?} */\r\n var draggedCarousel$ = this.carouselService.getDraggedState();\r\n /** @type {?} */\r\n var translatedCarousel$ = this.carouselService.getTranslatedState();\r\n /** @type {?} */\r\n var dragTranslatedMerge$ = merge(dragCarousel$, draggedCarousel$, translatedCarousel$).pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) { return _this.swapping = data === 'translated'; })));\r\n /** @type {?} */\r\n var translateCarousel$ = this.carouselService.getTranslateState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (_this.swapping && (_this.carouselService._options.animateOut || _this.carouselService._options.animateIn)) {\r\n _this._swap();\r\n }\r\n })));\r\n /** @type {?} */\r\n var animateMerge$ = merge(changeSettings$, translateCarousel$, dragTranslatedMerge$).pipe();\r\n this.animateSubscription = animateMerge$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * Toggles the animation classes whenever an translations starts.\r\n * @returns\r\n */\r\n /**\r\n * Toggles the animation classes whenever an translations starts.\r\n * @private\r\n * @return {?}\r\n */\r\n AnimateService.prototype._swap = /**\r\n * Toggles the animation classes whenever an translations starts.\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.carouselService.settings.items !== 1) {\r\n return;\r\n }\r\n // if (!$.support.animation || !$.support.transition) {\r\n // \treturn;\r\n // }\r\n this.carouselService.speed(0);\r\n /** @type {?} */\r\n var left;\r\n /** @type {?} */\r\n var previous = this.carouselService.slidesData[this.previous];\r\n /** @type {?} */\r\n var next = this.carouselService.slidesData[this.next];\r\n /** @type {?} */\r\n var incoming = this.carouselService.settings.animateIn;\r\n /** @type {?} */\r\n var outgoing = this.carouselService.settings.animateOut;\r\n if (this.carouselService.current() === this.previous) {\r\n return;\r\n }\r\n if (outgoing) {\r\n left = +this.carouselService.coordinates(this.previous) - +this.carouselService.coordinates(this.next);\r\n this.carouselService.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n if (slide.id === previous.id) {\r\n slide.left = left + \"px\";\r\n slide.isAnimated = true;\r\n slide.isDefAnimatedOut = true;\r\n slide.isCustomAnimatedOut = true;\r\n }\r\n }));\r\n }\r\n if (incoming) {\r\n this.carouselService.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n if (slide.id === next.id) {\r\n slide.isAnimated = true;\r\n slide.isDefAnimatedIn = true;\r\n slide.isCustomAnimatedIn = true;\r\n }\r\n }));\r\n }\r\n };\r\n /**\r\n * Handles the end of 'animationend' event\r\n * @param id Id of slides\r\n */\r\n /**\r\n * Handles the end of 'animationend' event\r\n * @param {?} id Id of slides\r\n * @return {?}\r\n */\r\n AnimateService.prototype.clear = /**\r\n * Handles the end of 'animationend' event\r\n * @param {?} id Id of slides\r\n * @return {?}\r\n */\r\n function (id) {\r\n var _this = this;\r\n this.carouselService.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n if (slide.id === id) {\r\n slide.left = '';\r\n slide.isAnimated = false;\r\n slide.isDefAnimatedOut = false;\r\n slide.isCustomAnimatedOut = false;\r\n slide.isDefAnimatedIn = false;\r\n slide.isCustomAnimatedIn = false;\r\n slide.classes = _this.carouselService.setCurSlideClasses(slide);\r\n }\r\n }));\r\n this.carouselService.onTransitionEnd();\r\n };\r\n AnimateService.decorators = [\r\n { type: Injectable }\r\n ];\r\n AnimateService.ctorParameters = function () { return [\r\n { type: CarouselService }\r\n ]; };\r\n return AnimateService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar AutoHeightService = /** @class */ (function () {\r\n function AutoHeightService(carouselService) {\r\n this.carouselService = carouselService;\r\n this.spyDataStreams();\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n AutoHeightService.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.autoHeightSubscription.unsubscribe();\r\n };\r\n /**\r\n * Defines Observables which service must observe\r\n */\r\n /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n AutoHeightService.prototype.spyDataStreams = /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var initializedCarousel$ = this.carouselService.getInitializedState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (_this.carouselService.settings.autoHeight) {\r\n _this.update();\r\n }\r\n else {\r\n _this.carouselService.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) { return slide.heightState = 'full'; }));\r\n }\r\n })));\r\n /** @type {?} */\r\n var changedSettings$ = this.carouselService.getChangedState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (_this.carouselService.settings.autoHeight && data.property.name === 'position') {\r\n _this.update();\r\n }\r\n })));\r\n /** @type {?} */\r\n var refreshedCarousel$ = this.carouselService.getRefreshedState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (_this.carouselService.settings.autoHeight) {\r\n _this.update();\r\n }\r\n })));\r\n /** @type {?} */\r\n var autoHeight$ = merge(initializedCarousel$, changedSettings$, refreshedCarousel$);\r\n this.autoHeightSubscription = autoHeight$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * Updates the prop 'heightState' of slides\r\n */\r\n /**\r\n * Updates the prop 'heightState' of slides\r\n * @return {?}\r\n */\r\n AutoHeightService.prototype.update = /**\r\n * Updates the prop 'heightState' of slides\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var items = this.carouselService.settings.items;\r\n /** @type {?} */\r\n var start = this.carouselService.current();\r\n /** @type {?} */\r\n var end = start + items;\r\n if (this.carouselService.settings.center) {\r\n start = items % 2 === 1 ? start - (items - 1) / 2 : start - items / 2;\r\n end = items % 2 === 1 ? start + items : start + items + 1;\r\n }\r\n this.carouselService.slidesData.forEach((/**\r\n * @param {?} slide\r\n * @param {?} i\r\n * @return {?}\r\n */\r\n function (slide, i) {\r\n slide.heightState = (i >= start && i < end) ? 'full' : 'nulled';\r\n }));\r\n };\r\n AutoHeightService.decorators = [\r\n { type: Injectable }\r\n ];\r\n AutoHeightService.ctorParameters = function () { return [\r\n { type: CarouselService }\r\n ]; };\r\n return AutoHeightService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar HashService = /** @class */ (function () {\r\n function HashService(carouselService, route, router) {\r\n this.carouselService = carouselService;\r\n this.route = route;\r\n this.router = router;\r\n this.spyDataStreams();\r\n if (!this.route) {\r\n this.route = (/** @type {?} */ ({\r\n fragment: of('no route').pipe(take(1))\r\n }));\r\n }\r\n if (!this.router) {\r\n this.router = (/** @type {?} */ ({\r\n navigate: (/**\r\n * @param {?} commands\r\n * @param {?=} extras\r\n * @return {?}\r\n */\r\n function (commands, extras) { return; })\r\n }));\r\n }\r\n }\r\n /**\r\n * @return {?}\r\n */\r\n HashService.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.hashSubscription.unsubscribe();\r\n };\r\n /**\r\n * Defines Observables which service must observe\r\n */\r\n /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n HashService.prototype.spyDataStreams = /**\r\n * Defines Observables which service must observe\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var initializedCarousel$ = this.carouselService.getInitializedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () { return _this.listenToRoute(); })));\r\n /** @type {?} */\r\n var changedSettings$ = this.carouselService.getChangedState().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n if (_this.carouselService.settings.URLhashListener && data.property.name === 'position') {\r\n /** @type {?} */\r\n var newCurSlide = _this.carouselService.current();\r\n /** @type {?} */\r\n var newCurFragment = _this.carouselService.slidesData[newCurSlide].hashFragment;\r\n if (!newCurFragment || newCurFragment === _this.currentHashFragment) {\r\n return;\r\n }\r\n _this.router.navigate(['./'], { fragment: newCurFragment, relativeTo: _this.route });\r\n }\r\n })));\r\n /** @type {?} */\r\n var hashFragment$ = merge(initializedCarousel$, changedSettings$);\r\n this.hashSubscription = hashFragment$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * rewinds carousel to slide which has the same hashFragment as fragment of current url\r\n * @param fragment fragment of url\r\n */\r\n /**\r\n * rewinds carousel to slide which has the same hashFragment as fragment of current url\r\n * @param {?} fragment fragment of url\r\n * @return {?}\r\n */\r\n HashService.prototype.rewind = /**\r\n * rewinds carousel to slide which has the same hashFragment as fragment of current url\r\n * @param {?} fragment fragment of url\r\n * @return {?}\r\n */\r\n function (fragment) {\r\n /** @type {?} */\r\n var position = this.carouselService.slidesData.findIndex((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) { return slide.hashFragment === fragment && slide.isCloned === false; }));\r\n if (position === -1 || position === this.carouselService.current()) {\r\n return;\r\n }\r\n this.carouselService.to(this.carouselService.relative(position), false);\r\n };\r\n /**\r\n * Initiate listening to ActivatedRoute.fragment\r\n */\r\n /**\r\n * Initiate listening to ActivatedRoute.fragment\r\n * @return {?}\r\n */\r\n HashService.prototype.listenToRoute = /**\r\n * Initiate listening to ActivatedRoute.fragment\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n /** @type {?} */\r\n var count = this.carouselService.settings.startPosition === 'URLHash' ? 0 : 2;\r\n this.route.fragment.pipe(skip(count))\r\n .subscribe((/**\r\n * @param {?} fragment\r\n * @return {?}\r\n */\r\n function (fragment) {\r\n _this.currentHashFragment = fragment;\r\n _this.rewind(fragment);\r\n }));\r\n };\r\n HashService.decorators = [\r\n { type: Injectable }\r\n ];\r\n HashService.ctorParameters = function () { return [\r\n { type: CarouselService },\r\n { type: ActivatedRoute, decorators: [{ type: Optional }] },\r\n { type: Router, decorators: [{ type: Optional }] }\r\n ]; };\r\n return HashService;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n/** @type {?} */\r\nvar nextId = 0;\r\nvar CarouselSlideDirective = /** @class */ (function () {\r\n function CarouselSlideDirective(tplRef) {\r\n this.tplRef = tplRef;\r\n /**\r\n * Unique slide identifier. Must be unique for the entire document for proper accessibility support.\r\n * Will be auto-generated if not provided.\r\n */\r\n this.id = \"owl-slide-\" + nextId++;\r\n /**\r\n * Defines how much widths of common slide will current slide have\r\n * e.g. if _mergeData=2, the slide will twice wider then slides with _mergeData=1\r\n */\r\n this._dataMerge = 1;\r\n /**\r\n * Width of slide\r\n */\r\n this.width = 0;\r\n /**\r\n * Inner content of dot for certain slide; can be html-markup\r\n */\r\n this.dotContent = '';\r\n /**\r\n * Hash (fragment) of url which corresponds to certain slide\r\n */\r\n this.dataHash = '';\r\n }\r\n Object.defineProperty(CarouselSlideDirective.prototype, \"dataMerge\", {\r\n get: /**\r\n * @return {?}\r\n */\r\n function () { return this._dataMerge; },\r\n set: /**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n this._dataMerge = this.isNumeric(data) ? data : 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * Determines if the input is a Number or something that can be coerced to a Number\r\n * @param - The input to be tested\r\n * @returns - An indication if the input is a Number or can be coerced to a Number\r\n */\r\n /**\r\n * Determines if the input is a Number or something that can be coerced to a Number\r\n * @param {?} number\r\n * @return {?} - An indication if the input is a Number or can be coerced to a Number\r\n */\r\n CarouselSlideDirective.prototype.isNumeric = /**\r\n * Determines if the input is a Number or something that can be coerced to a Number\r\n * @param {?} number\r\n * @return {?} - An indication if the input is a Number or can be coerced to a Number\r\n */\r\n function (number) {\r\n return !isNaN(parseFloat(number));\r\n };\r\n CarouselSlideDirective.decorators = [\r\n { type: Directive, args: [{ selector: 'ng-template[carouselSlide]' },] }\r\n ];\r\n CarouselSlideDirective.ctorParameters = function () { return [\r\n { type: TemplateRef }\r\n ]; };\r\n CarouselSlideDirective.propDecorators = {\r\n id: [{ type: Input }],\r\n dataMerge: [{ type: Input }],\r\n width: [{ type: Input }],\r\n dotContent: [{ type: Input }],\r\n dataHash: [{ type: Input }]\r\n };\r\n return CarouselSlideDirective;\r\n}());\r\n/**\r\n * Data which will be passed out after ending of transition of carousel\r\n */\r\nvar /**\r\n * Data which will be passed out after ending of transition of carousel\r\n */\r\nSlidesOutputData = /** @class */ (function () {\r\n /**\r\n * Data which will be passed out after ending of transition of carousel\r\n */\r\n function SlidesOutputData() {\r\n }\r\n return SlidesOutputData;\r\n}());\r\nvar CarouselComponent = /** @class */ (function () {\r\n function CarouselComponent(el, resizeService, carouselService, navigationService, autoplayService, lazyLoadService, animateService, autoHeightService, hashService, logger, docRef) {\r\n this.el = el;\r\n this.resizeService = resizeService;\r\n this.carouselService = carouselService;\r\n this.navigationService = navigationService;\r\n this.autoplayService = autoplayService;\r\n this.lazyLoadService = lazyLoadService;\r\n this.animateService = animateService;\r\n this.autoHeightService = autoHeightService;\r\n this.hashService = hashService;\r\n this.logger = logger;\r\n this.translated = new EventEmitter();\r\n this.dragging = new EventEmitter();\r\n this.change = new EventEmitter();\r\n this.changed = new EventEmitter();\r\n this.initialized = new EventEmitter();\r\n /**\r\n * Data of every slide\r\n */\r\n this.slidesData = [];\r\n /**\r\n * Shows whether carousel is loaded of not.\r\n */\r\n this.carouselLoaded = false;\r\n this.docRef = (/** @type {?} */ (docRef));\r\n }\r\n /**\r\n * @param {?} ev\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.onVisibilityChange = /**\r\n * @param {?} ev\r\n * @return {?}\r\n */\r\n function (ev) {\r\n if (!this.carouselService.settings.autoplay)\r\n return;\r\n switch (this.docRef.visibilityState) {\r\n case 'visible':\r\n this.autoplayService.play();\r\n break;\r\n case 'hidden':\r\n this.autoplayService.stop();\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.ngOnInit = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.spyDataStreams();\r\n this.carouselWindowWidth = this.el.nativeElement.querySelector('.owl-carousel').clientWidth;\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.ngAfterContentChecked = /**\r\n * @return {?}\r\n */\r\n function () {\r\n };\r\n // ngAfterContentChecked() END\r\n // ngAfterContentChecked() END\r\n /**\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.ngAfterContentInit = \r\n // ngAfterContentChecked() END\r\n /**\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n if (this.slides.toArray().length) {\r\n this.carouselService.setup(this.carouselWindowWidth, this.slides.toArray(), this.options);\r\n this.carouselService.initialize(this.slides.toArray());\r\n this._winResizeWatcher();\r\n }\r\n else {\r\n this.logger.log(\"There are no slides to show. So the carousel won't be rendered\");\r\n }\r\n this._slidesChangesSubscription = this.slides.changes.pipe(tap((/**\r\n * @param {?} slides\r\n * @return {?}\r\n */\r\n function (slides) {\r\n if (slides.toArray().length) {\r\n // this.carouselService.setItems(slides.toArray());\r\n _this.carouselService.setup(_this.carouselWindowWidth, slides.toArray(), _this.options);\r\n _this.carouselService.initialize(slides.toArray());\r\n }\r\n else {\r\n _this.carouselLoaded = false;\r\n _this.logger.log(\"There are no slides to show. So the carousel won't be re-rendered\");\r\n }\r\n }))).subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.resizeSubscription) {\r\n this.resizeSubscription.unsubscribe();\r\n }\r\n if (this._slidesChangesSubscription) {\r\n this._slidesChangesSubscription.unsubscribe();\r\n }\r\n if (this._allObservSubscription) {\r\n this._allObservSubscription.unsubscribe();\r\n }\r\n };\r\n /**\r\n * Joins the observable login in one place: sets values to some observables, merges this observables and\r\n * subcribes to merge func\r\n */\r\n /**\r\n * Joins the observable login in one place: sets values to some observables, merges this observables and\r\n * subcribes to merge func\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.spyDataStreams = /**\r\n * Joins the observable login in one place: sets values to some observables, merges this observables and\r\n * subcribes to merge func\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n this._viewCurSettings$ = this.carouselService.getViewCurSettings().pipe(tap((/**\r\n * @param {?} data\r\n * @return {?}\r\n */\r\n function (data) {\r\n _this.owlDOMData = data.owlDOMData;\r\n _this.stageData = data.stageData;\r\n _this.slidesData = data.slidesData;\r\n if (!_this.carouselLoaded) {\r\n _this.carouselLoaded = true;\r\n }\r\n _this.navData = data.navData;\r\n _this.dotsData = data.dotsData;\r\n })));\r\n this._initializedCarousel$ = this.carouselService.getInitializedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.gatherTranslatedData();\r\n _this.initialized.emit(_this.slidesOutputData);\r\n // this.slidesOutputData = {};\r\n })));\r\n this._translatedCarousel$ = this.carouselService.getTranslatedState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.gatherTranslatedData();\r\n _this.translated.emit(_this.slidesOutputData);\r\n // this.slidesOutputData = {};\r\n })));\r\n this._changeCarousel$ = this.carouselService.getChangeState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.gatherTranslatedData();\r\n _this.change.emit(_this.slidesOutputData);\r\n // this.slidesOutputData = {};\r\n })));\r\n this._changedCarousel$ = this.carouselService.getChangeState().pipe(switchMap((/**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n function (value) {\r\n /** @type {?} */\r\n var changedPosition = of(value).pipe(filter((/**\r\n * @return {?}\r\n */\r\n function () { return value.property.name === 'position'; })), switchMap((/**\r\n * @return {?}\r\n */\r\n function () { return from(_this.slidesData); })), skip(value.property.value), take(_this.carouselService.settings.items), map((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n /** @type {?} */\r\n var clonedIdPrefix = _this.carouselService.clonedIdPrefix;\r\n /** @type {?} */\r\n var id = slide.id.indexOf(clonedIdPrefix) >= 0 ? slide.id.slice(clonedIdPrefix.length) : slide.id;\r\n return __assign({}, slide, { id: id, isActive: true });\r\n })), toArray(), map((/**\r\n * @param {?} slides\r\n * @return {?}\r\n */\r\n function (slides) {\r\n return {\r\n slides: slides,\r\n startPosition: _this.carouselService.relative(value.property.value)\r\n };\r\n })));\r\n // const changedSetting: Observable = of(value).pipe(\r\n // filter(() => value.property.name === 'settings'),\r\n // map(() => {\r\n // return {\r\n // slides: [],\r\n // startPosition: this.carouselService.relative(value.property.value)\r\n // }\r\n // })\r\n // )\r\n return merge(changedPosition);\r\n })), tap((/**\r\n * @param {?} slidesData\r\n * @return {?}\r\n */\r\n function (slidesData) {\r\n _this.gatherTranslatedData();\r\n _this.changed.emit(slidesData.slides.length ? slidesData : _this.slidesOutputData);\r\n // console.log(this.slidesOutputData);\r\n // this.slidesOutputData = {};\r\n })));\r\n this._draggingCarousel$ = this.carouselService.getDragState().pipe(tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.gatherTranslatedData();\r\n _this.dragging.emit({ dragging: true, data: _this.slidesOutputData });\r\n })), switchMap((/**\r\n * @return {?}\r\n */\r\n function () { return _this.carouselService.getDraggedState().pipe(map((/**\r\n * @return {?}\r\n */\r\n function () { return !!_this.carouselService.is('animating'); }))); })), switchMap((/**\r\n * @param {?} anim\r\n * @return {?}\r\n */\r\n function (anim) {\r\n if (anim) {\r\n return _this.carouselService.getTranslatedState().pipe(first());\r\n }\r\n else {\r\n return of('not animating');\r\n }\r\n })), tap((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.dragging.emit({ dragging: false, data: _this.slidesOutputData });\r\n })));\r\n this._carouselMerge$ = merge(this._viewCurSettings$, this._translatedCarousel$, this._draggingCarousel$, this._changeCarousel$, this._changedCarousel$, this._initializedCarousel$);\r\n this._allObservSubscription = this._carouselMerge$.subscribe((/**\r\n * @return {?}\r\n */\r\n function () { }));\r\n };\r\n /**\r\n * Init subscription to resize event and attaches handler for this event\r\n */\r\n /**\r\n * Init subscription to resize event and attaches handler for this event\r\n * @private\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype._winResizeWatcher = /**\r\n * Init subscription to resize event and attaches handler for this event\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n if (Object.keys(this.carouselService._options.responsive).length) {\r\n this.resizeSubscription = this.resizeService.onResize$\r\n .pipe(filter((/**\r\n * @return {?}\r\n */\r\n function () { return _this.carouselWindowWidth !== _this.el.nativeElement.querySelector('.owl-carousel').clientWidth; })), delay(this.carouselService.settings.responsiveRefreshRate))\r\n .subscribe((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.carouselService.onResize(_this.el.nativeElement.querySelector('.owl-carousel').clientWidth);\r\n _this.carouselWindowWidth = _this.el.nativeElement.querySelector('.owl-carousel').clientWidth;\r\n }));\r\n }\r\n };\r\n /**\r\n * Handler for transitioend event\r\n */\r\n /**\r\n * Handler for transitioend event\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.onTransitionEnd = /**\r\n * Handler for transitioend event\r\n * @return {?}\r\n */\r\n function () {\r\n this.carouselService.onTransitionEnd();\r\n };\r\n /**\r\n * Handler for click event, attached to next button\r\n */\r\n /**\r\n * Handler for click event, attached to next button\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.next = /**\r\n * Handler for click event, attached to next button\r\n * @return {?}\r\n */\r\n function () {\r\n if (!this.carouselLoaded)\r\n return;\r\n this.navigationService.next(this.carouselService.settings.navSpeed);\r\n };\r\n /**\r\n * Handler for click event, attached to prev button\r\n */\r\n /**\r\n * Handler for click event, attached to prev button\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.prev = /**\r\n * Handler for click event, attached to prev button\r\n * @return {?}\r\n */\r\n function () {\r\n if (!this.carouselLoaded)\r\n return;\r\n this.navigationService.prev(this.carouselService.settings.navSpeed);\r\n };\r\n /**\r\n * Handler for click event, attached to dots\r\n */\r\n /**\r\n * Handler for click event, attached to dots\r\n * @param {?} dotId\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.moveByDot = /**\r\n * Handler for click event, attached to dots\r\n * @param {?} dotId\r\n * @return {?}\r\n */\r\n function (dotId) {\r\n if (!this.carouselLoaded)\r\n return;\r\n this.navigationService.moveByDot(dotId);\r\n };\r\n /**\r\n * rewinds carousel to slide with needed id\r\n * @param id fragment of url\r\n */\r\n /**\r\n * rewinds carousel to slide with needed id\r\n * @param {?} id fragment of url\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.to = /**\r\n * rewinds carousel to slide with needed id\r\n * @param {?} id fragment of url\r\n * @return {?}\r\n */\r\n function (id) {\r\n // if (!this.carouselLoaded || ((this.navData && this.navData.disabled) && (this.dotsData && this.dotsData.disabled))) return;\r\n if (!this.carouselLoaded)\r\n return;\r\n this.navigationService.toSlideById(id);\r\n };\r\n /**\r\n * Gathers and prepares data intended for passing to the user by means of firing event translatedCarousel\r\n */\r\n /**\r\n * Gathers and prepares data intended for passing to the user by means of firing event translatedCarousel\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.gatherTranslatedData = /**\r\n * Gathers and prepares data intended for passing to the user by means of firing event translatedCarousel\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var startPosition;\r\n /** @type {?} */\r\n var clonedIdPrefix = this.carouselService.clonedIdPrefix;\r\n /** @type {?} */\r\n var activeSlides = this.slidesData\r\n .filter((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) { return slide.isActive === true; }))\r\n .map((/**\r\n * @param {?} slide\r\n * @return {?}\r\n */\r\n function (slide) {\r\n /** @type {?} */\r\n var id = slide.id.indexOf(clonedIdPrefix) >= 0 ? slide.id.slice(clonedIdPrefix.length) : slide.id;\r\n return {\r\n id: id,\r\n width: slide.width,\r\n marginL: slide.marginL,\r\n marginR: slide.marginR,\r\n center: slide.isCentered\r\n };\r\n }));\r\n startPosition = this.carouselService.relative(this.carouselService.current());\r\n this.slidesOutputData = {\r\n startPosition: startPosition,\r\n slides: activeSlides\r\n };\r\n };\r\n /**\r\n * Starts pausing\r\n */\r\n /**\r\n * Starts pausing\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.startPausing = /**\r\n * Starts pausing\r\n * @return {?}\r\n */\r\n function () {\r\n this.autoplayService.startPausing();\r\n };\r\n /**\r\n * Starts playing after mouse leaves carousel\r\n */\r\n /**\r\n * Starts playing after mouse leaves carousel\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.startPlayML = /**\r\n * Starts playing after mouse leaves carousel\r\n * @return {?}\r\n */\r\n function () {\r\n this.autoplayService.startPlayingMouseLeave();\r\n };\r\n /**\r\n * Starts playing after touch ends\r\n */\r\n /**\r\n * Starts playing after touch ends\r\n * @return {?}\r\n */\r\n CarouselComponent.prototype.startPlayTE = /**\r\n * Starts playing after touch ends\r\n * @return {?}\r\n */\r\n function () {\r\n this.autoplayService.startPlayingTouchEnd();\r\n };\r\n CarouselComponent.decorators = [\r\n { type: Component, args: [{\r\n selector: 'owl-carousel-o',\r\n template: \"\\n \\n \",\r\n providers: [\r\n NavigationService,\r\n AutoplayService,\r\n CarouselService,\r\n LazyLoadService,\r\n AnimateService,\r\n AutoHeightService,\r\n HashService\r\n ],\r\n styles: [\".owl-theme { display: block; }\"]\r\n }] }\r\n ];\r\n CarouselComponent.ctorParameters = function () { return [\r\n { type: ElementRef },\r\n { type: ResizeService },\r\n { type: CarouselService },\r\n { type: NavigationService },\r\n { type: AutoplayService },\r\n { type: LazyLoadService },\r\n { type: AnimateService },\r\n { type: AutoHeightService },\r\n { type: HashService },\r\n { type: OwlLogger },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n ]; };\r\n CarouselComponent.propDecorators = {\r\n slides: [{ type: ContentChildren, args: [CarouselSlideDirective,] }],\r\n translated: [{ type: Output }],\r\n dragging: [{ type: Output }],\r\n change: [{ type: Output }],\r\n changed: [{ type: Output }],\r\n initialized: [{ type: Output }],\r\n options: [{ type: Input }],\r\n onVisibilityChange: [{ type: HostListener, args: ['document:visibilitychange', ['$event'],] }]\r\n };\r\n return CarouselComponent;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar StageComponent = /** @class */ (function () {\r\n function StageComponent(zone, el, renderer, carouselService, animateService) {\r\n var _this = this;\r\n this.zone = zone;\r\n this.el = el;\r\n this.renderer = renderer;\r\n this.carouselService = carouselService;\r\n this.animateService = animateService;\r\n /**\r\n * Object with data needed for dragging\r\n */\r\n this._drag = {\r\n time: null,\r\n target: null,\r\n pointer: null,\r\n stage: {\r\n start: null,\r\n current: null\r\n },\r\n direction: null,\r\n active: false,\r\n moving: false\r\n };\r\n /**\r\n * Subject for notification when the carousel's rebuilding caused by resize event starts\r\n */\r\n this._oneDragMove$ = new Subject();\r\n /**\r\n * Passes this to _oneMouseTouchMove();\r\n */\r\n this.bindOneMouseTouchMove = (/**\r\n * @param {?} ev\r\n * @return {?}\r\n */\r\n function (ev) {\r\n _this._oneMouseTouchMove(ev);\r\n });\r\n /**\r\n * Passes this to _onDragMove();\r\n */\r\n this.bindOnDragMove = (/**\r\n * @param {?} ev\r\n * @return {?}\r\n */\r\n function (ev) {\r\n _this._onDragMove(ev);\r\n });\r\n /**\r\n * Passes this to _onDragMove();\r\n */\r\n this.bindOnDragEnd = (/**\r\n * @param {?} ev\r\n * @return {?}\r\n */\r\n function (ev) {\r\n // this.zone.run(() => {\r\n _this._onDragEnd(ev);\r\n // });\r\n });\r\n /**\r\n * Attaches handler for 'click' event on any element in .owl-stage in order to prevent dragging when moving of cursor is less than 3px\r\n */\r\n this._oneClickHandler = (/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.listenerOneClick = _this.renderer.listen(_this._drag.target, 'click', (/**\r\n * @return {?}\r\n */\r\n function () { return false; }));\r\n _this.listenerOneClick();\r\n });\r\n }\r\n /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n StageComponent.prototype.onMouseDown = /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n function (event) {\r\n if (this.owlDraggable.isMouseDragable) {\r\n this._onDragStart(event);\r\n }\r\n };\r\n /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n StageComponent.prototype.onTouchStart = /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n function (event) {\r\n if (this.owlDraggable.isTouchDragable) {\r\n this._onDragStart(event);\r\n }\r\n };\r\n /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n StageComponent.prototype.onTouchCancel = /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n function (event) {\r\n this._onDragEnd(event);\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n StageComponent.prototype.onDragStart = /**\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.owlDraggable.isMouseDragable) {\r\n return false;\r\n }\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n StageComponent.prototype.onSelectStart = /**\r\n * @return {?}\r\n */\r\n function () {\r\n if (this.owlDraggable.isMouseDragable) {\r\n return false;\r\n }\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n StageComponent.prototype.ngOnInit = /**\r\n * @return {?}\r\n */\r\n function () {\r\n var _this = this;\r\n this._oneMoveSubsription = this._oneDragMove$\r\n .pipe(first())\r\n .subscribe((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this._sendChanges();\r\n }));\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n StageComponent.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this._oneMoveSubsription.unsubscribe();\r\n };\r\n /**\r\n * Handles `touchstart` and `mousedown` events.\r\n * @todo Horizontal swipe threshold as option\r\n * @todo #261\r\n * @param event - The event arguments.\r\n */\r\n /**\r\n * Handles `touchstart` and `mousedown` events.\r\n * \\@todo Horizontal swipe threshold as option / #261\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?}\r\n */\r\n StageComponent.prototype._onDragStart = /**\r\n * Handles `touchstart` and `mousedown` events.\r\n * \\@todo Horizontal swipe threshold as option / #261\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?}\r\n */\r\n function (event) {\r\n var _this = this;\r\n /** @type {?} */\r\n var stage = null;\r\n if (event.which === 3) {\r\n return;\r\n }\r\n stage = this._prepareDragging(event);\r\n this._drag.time = new Date().getTime();\r\n this._drag.target = event.target;\r\n this._drag.stage.start = stage;\r\n this._drag.stage.current = stage;\r\n this._drag.pointer = this._pointer(event);\r\n this.listenerMouseUp = this.renderer.listen(document, 'mouseup', this.bindOnDragEnd);\r\n this.listenerTouchEnd = this.renderer.listen(document, 'touchend', this.bindOnDragEnd);\r\n this.zone.runOutsideAngular((/**\r\n * @return {?}\r\n */\r\n function () {\r\n _this.listenerOneMouseMove = _this.renderer.listen(document, 'mousemove', _this.bindOneMouseTouchMove);\r\n _this.listenerOneTouchMove = _this.renderer.listen(document, 'touchmove', _this.bindOneMouseTouchMove);\r\n }));\r\n };\r\n /**\r\n * Attaches listeners to `touchmove` and `mousemove` events; initiates updating carousel after starting dragging\r\n * @param event event objech of mouse or touch event\r\n */\r\n /**\r\n * Attaches listeners to `touchmove` and `mousemove` events; initiates updating carousel after starting dragging\r\n * @private\r\n * @param {?} event event objech of mouse or touch event\r\n * @return {?}\r\n */\r\n StageComponent.prototype._oneMouseTouchMove = /**\r\n * Attaches listeners to `touchmove` and `mousemove` events; initiates updating carousel after starting dragging\r\n * @private\r\n * @param {?} event event objech of mouse or touch event\r\n * @return {?}\r\n */\r\n function (event) {\r\n /** @type {?} */\r\n var delta = this._difference(this._drag.pointer, this._pointer(event));\r\n if (this.listenerATag) {\r\n this.listenerATag();\r\n }\r\n if (Math.abs(delta.x) < 3 && Math.abs(delta.y) < 3 && this._is('valid')) {\r\n return;\r\n }\r\n if ((Math.abs(delta.x) < 3 && Math.abs(delta.x) < Math.abs(delta.y)) && this._is('valid')) {\r\n return;\r\n }\r\n this.listenerOneMouseMove();\r\n this.listenerOneTouchMove();\r\n this._drag.moving = true;\r\n this.blockClickAnchorInDragging(event);\r\n this.listenerMouseMove = this.renderer.listen(document, 'mousemove', this.bindOnDragMove);\r\n this.listenerTouchMove = this.renderer.listen(document, 'touchmove', this.bindOnDragMove);\r\n event.preventDefault();\r\n this._enterDragging();\r\n this._oneDragMove$.next(event);\r\n // this._sendChanges();\r\n };\r\n /**\r\n * Attaches handler to HTMLAnchorElement for preventing click while carousel is being dragged\r\n * @param event event object\r\n */\r\n /**\r\n * Attaches handler to HTMLAnchorElement for preventing click while carousel is being dragged\r\n * @private\r\n * @param {?} event event object\r\n * @return {?}\r\n */\r\n StageComponent.prototype.blockClickAnchorInDragging = /**\r\n * Attaches handler to HTMLAnchorElement for preventing click while carousel is being dragged\r\n * @private\r\n * @param {?} event event object\r\n * @return {?}\r\n */\r\n function (event) {\r\n /** @type {?} */\r\n var target = event.target;\r\n while (target && !(target instanceof HTMLAnchorElement)) {\r\n target = target.parentElement;\r\n }\r\n if (target instanceof HTMLAnchorElement) {\r\n this.listenerATag = this.renderer.listen(target, 'click', (/**\r\n * @return {?}\r\n */\r\n function () { return false; }));\r\n }\r\n };\r\n /**\r\n * Handles the `touchmove` and `mousemove` events.\r\n * @todo #261\r\n * @param event - The event arguments.\r\n */\r\n /**\r\n * Handles the `touchmove` and `mousemove` events.\r\n * \\@todo #261\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?}\r\n */\r\n StageComponent.prototype._onDragMove = /**\r\n * Handles the `touchmove` and `mousemove` events.\r\n * \\@todo #261\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?}\r\n */\r\n function (event) {\r\n /** @type {?} */\r\n var stage;\r\n /** @type {?} */\r\n var stageOrExit = this.carouselService.defineNewCoordsDrag(event, this._drag);\r\n if (stageOrExit === false) {\r\n return;\r\n }\r\n stage = (/** @type {?} */ (stageOrExit));\r\n event.preventDefault();\r\n this._drag.stage.current = stage;\r\n this._animate(stage.x - this._drag.stage.start.x);\r\n };\r\n /**\r\n * Moves .owl-stage left-right\r\n * @param coordinate coordinate to be set to .owl-stage\r\n */\r\n /**\r\n * Moves .owl-stage left-right\r\n * @private\r\n * @param {?} coordinate coordinate to be set to .owl-stage\r\n * @return {?}\r\n */\r\n StageComponent.prototype._animate = /**\r\n * Moves .owl-stage left-right\r\n * @private\r\n * @param {?} coordinate coordinate to be set to .owl-stage\r\n * @return {?}\r\n */\r\n function (coordinate) {\r\n this.renderer.setStyle(this.el.nativeElement.children[0], 'transform', \"translate3d(\" + coordinate + \"px,0px,0px\");\r\n this.renderer.setStyle(this.el.nativeElement.children[0], 'transition', '0s');\r\n };\r\n /**\r\n * Handles the `touchend` and `mouseup` events.\r\n * @todo #261\r\n * @todo Threshold for click event\r\n * @param event - The event arguments.\r\n */\r\n /**\r\n * Handles the `touchend` and `mouseup` events.\r\n * \\@todo #261 / Threshold for click event\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?}\r\n */\r\n StageComponent.prototype._onDragEnd = /**\r\n * Handles the `touchend` and `mouseup` events.\r\n * \\@todo #261 / Threshold for click event\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?}\r\n */\r\n function (event) {\r\n this.carouselService.owlDOMData.isGrab = false;\r\n this.listenerOneMouseMove();\r\n this.listenerOneTouchMove();\r\n if (this._drag.moving) {\r\n this.renderer.setStyle(this.el.nativeElement.children[0], 'transform', \"\");\r\n this.renderer.setStyle(this.el.nativeElement.children[0], 'transition', this.carouselService.speed(+this.carouselService.settings.dragEndSpeed || this.carouselService.settings.smartSpeed) / 1000 + 's');\r\n this._finishDragging(event);\r\n this.listenerMouseMove();\r\n this.listenerTouchMove();\r\n }\r\n this._drag = {\r\n time: null,\r\n target: null,\r\n pointer: null,\r\n stage: {\r\n start: null,\r\n current: null\r\n },\r\n direction: null,\r\n active: false,\r\n moving: false\r\n };\r\n // this.carouselService.trigger('dragged');\r\n this.listenerMouseUp();\r\n this.listenerTouchEnd();\r\n };\r\n /**\r\n * Prepares data for dragging carousel. It starts after firing `touchstart` and `mousedown` events.\r\n * @param event - The event arguments.\r\n * @returns stage - object with 'x' and 'y' coordinates of .owl-stage\r\n */\r\n /**\r\n * Prepares data for dragging carousel. It starts after firing `touchstart` and `mousedown` events.\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?} stage - object with 'x' and 'y' coordinates of .owl-stage\r\n */\r\n StageComponent.prototype._prepareDragging = /**\r\n * Prepares data for dragging carousel. It starts after firing `touchstart` and `mousedown` events.\r\n * @private\r\n * @param {?} event - The event arguments.\r\n * @return {?} stage - object with 'x' and 'y' coordinates of .owl-stage\r\n */\r\n function (event) {\r\n return this.carouselService.prepareDragging(event);\r\n };\r\n /**\r\n * Finishes dragging\r\n * @param event object event of 'mouseUp' of 'touchend' events\r\n */\r\n /**\r\n * Finishes dragging\r\n * @private\r\n * @param {?} event object event of 'mouseUp' of 'touchend' events\r\n * @return {?}\r\n */\r\n StageComponent.prototype._finishDragging = /**\r\n * Finishes dragging\r\n * @private\r\n * @param {?} event object event of 'mouseUp' of 'touchend' events\r\n * @return {?}\r\n */\r\n function (event) {\r\n this.carouselService.finishDragging(event, this._drag, this._oneClickHandler);\r\n };\r\n /**\r\n * Gets unified pointer coordinates from event.\r\n * @param event The `mousedown` or `touchstart` event.\r\n * @returns Contains `x` and `y` coordinates of current pointer position.\r\n */\r\n /**\r\n * Gets unified pointer coordinates from event.\r\n * @private\r\n * @param {?} event The `mousedown` or `touchstart` event.\r\n * @return {?} Contains `x` and `y` coordinates of current pointer position.\r\n */\r\n StageComponent.prototype._pointer = /**\r\n * Gets unified pointer coordinates from event.\r\n * @private\r\n * @param {?} event The `mousedown` or `touchstart` event.\r\n * @return {?} Contains `x` and `y` coordinates of current pointer position.\r\n */\r\n function (event) {\r\n return this.carouselService.pointer(event);\r\n };\r\n /**\r\n * Gets the difference of two vectors.\r\n * @param first The first vector.\r\n * @param second- The second vector.\r\n * @returns The difference.\r\n */\r\n /**\r\n * Gets the difference of two vectors.\r\n * @private\r\n * @param {?} firstC\r\n * @param {?} second\r\n * @return {?} The difference.\r\n */\r\n StageComponent.prototype._difference = /**\r\n * Gets the difference of two vectors.\r\n * @private\r\n * @param {?} firstC\r\n * @param {?} second\r\n * @return {?} The difference.\r\n */\r\n function (firstC, second) {\r\n return this.carouselService.difference(firstC, second);\r\n };\r\n /**\r\n * Checks whether the carousel is in a specific state or not.\r\n * @param specificState The state to check.\r\n * @returns The flag which indicates if the carousel is busy.\r\n */\r\n /**\r\n * Checks whether the carousel is in a specific state or not.\r\n * @private\r\n * @param {?} specificState The state to check.\r\n * @return {?} The flag which indicates if the carousel is busy.\r\n */\r\n StageComponent.prototype._is = /**\r\n * Checks whether the carousel is in a specific state or not.\r\n * @private\r\n * @param {?} specificState The state to check.\r\n * @return {?} The flag which indicates if the carousel is busy.\r\n */\r\n function (specificState) {\r\n return this.carouselService.is(specificState);\r\n };\r\n /**\r\n * Enters a state.\r\n * @param name The state name.\r\n */\r\n /**\r\n * Enters a state.\r\n * @private\r\n * @param {?} name The state name.\r\n * @return {?}\r\n */\r\n StageComponent.prototype._enter = /**\r\n * Enters a state.\r\n * @private\r\n * @param {?} name The state name.\r\n * @return {?}\r\n */\r\n function (name) {\r\n this.carouselService.enter(name);\r\n };\r\n /**\r\n * Sends all data needed for View.\r\n */\r\n /**\r\n * Sends all data needed for View.\r\n * @private\r\n * @return {?}\r\n */\r\n StageComponent.prototype._sendChanges = /**\r\n * Sends all data needed for View.\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n this.carouselService.sendChanges();\r\n };\r\n /**\r\n * Handler for transitioend event\r\n */\r\n /**\r\n * Handler for transitioend event\r\n * @return {?}\r\n */\r\n StageComponent.prototype.onTransitionEnd = /**\r\n * Handler for transitioend event\r\n * @return {?}\r\n */\r\n function () {\r\n this.carouselService.onTransitionEnd();\r\n };\r\n /**\r\n * Enters into a 'dragging' state\r\n */\r\n /**\r\n * Enters into a 'dragging' state\r\n * @private\r\n * @return {?}\r\n */\r\n StageComponent.prototype._enterDragging = /**\r\n * Enters into a 'dragging' state\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n this.carouselService.enterDragging();\r\n };\r\n /**\r\n * Handles the end of 'animationend' event\r\n * @param id Id of slides\r\n */\r\n /**\r\n * Handles the end of 'animationend' event\r\n * @param {?} id Id of slides\r\n * @return {?}\r\n */\r\n StageComponent.prototype.clear = /**\r\n * Handles the end of 'animationend' event\r\n * @param {?} id Id of slides\r\n * @return {?}\r\n */\r\n function (id) {\r\n this.animateService.clear(id);\r\n };\r\n StageComponent.decorators = [\r\n { type: Component, args: [{\r\n selector: 'owl-stage',\r\n template: \"\\n
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n \",\r\n animations: [\r\n trigger('autoHeight', [\r\n state('nulled', style({ height: 0 })),\r\n state('full', style({ height: '*' })),\r\n transition('full => nulled', [\r\n // style({height: '*'}),\r\n animate('700ms 350ms')\r\n ]),\r\n transition('nulled => full', [\r\n // style({height: 0}),\r\n animate(350)\r\n ]),\r\n ])\r\n ]\r\n }] }\r\n ];\r\n StageComponent.ctorParameters = function () { return [\r\n { type: NgZone },\r\n { type: ElementRef },\r\n { type: Renderer2 },\r\n { type: CarouselService },\r\n { type: AnimateService }\r\n ]; };\r\n StageComponent.propDecorators = {\r\n owlDraggable: [{ type: Input }],\r\n stageData: [{ type: Input }],\r\n slidesData: [{ type: Input }],\r\n onMouseDown: [{ type: HostListener, args: ['mousedown', ['$event'],] }],\r\n onTouchStart: [{ type: HostListener, args: ['touchstart', ['$event'],] }],\r\n onTouchCancel: [{ type: HostListener, args: ['touchcancel', ['$event'],] }],\r\n onDragStart: [{ type: HostListener, args: ['dragstart',] }],\r\n onSelectStart: [{ type: HostListener, args: ['selectstart',] }]\r\n };\r\n return StageComponent;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar OwlRouterLinkDirective = /** @class */ (function () {\r\n function OwlRouterLinkDirective(router, route, tabIndex, renderer, el) {\r\n this.router = router;\r\n this.route = route;\r\n this.stopLink = false;\r\n this.commands = [];\r\n if (tabIndex == null) {\r\n renderer.setAttribute(el.nativeElement, 'tabindex', '0');\r\n }\r\n }\r\n Object.defineProperty(OwlRouterLinkDirective.prototype, \"owlRouterLink\", {\r\n set: /**\r\n * @param {?} commands\r\n * @return {?}\r\n */\r\n function (commands) {\r\n if (commands != null) {\r\n this.commands = Array.isArray(commands) ? commands : [commands];\r\n }\r\n else {\r\n this.commands = [];\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(OwlRouterLinkDirective.prototype, \"preserveQueryParams\", {\r\n /**\r\n * @deprecated 4.0.0 use `queryParamsHandling` instead.\r\n */\r\n set: /**\r\n * @deprecated 4.0.0 use `queryParamsHandling` instead.\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n function (value) {\r\n if (isDevMode() && (/** @type {?} */ (console)) && (/** @type {?} */ (console.warn))) {\r\n console.warn('preserveQueryParams is deprecated!, use queryParamsHandling instead.');\r\n }\r\n this.preserve = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @return {?}\r\n */\r\n OwlRouterLinkDirective.prototype.onClick = /**\r\n * @return {?}\r\n */\r\n function () {\r\n /** @type {?} */\r\n var extras = {\r\n skipLocationChange: attrBoolValue(this.skipLocationChange),\r\n replaceUrl: attrBoolValue(this.replaceUrl),\r\n };\r\n if (this.stopLink) {\r\n return false;\r\n }\r\n this.router.navigateByUrl(this.urlTree, extras);\r\n return true;\r\n };\r\n Object.defineProperty(OwlRouterLinkDirective.prototype, \"urlTree\", {\r\n get: /**\r\n * @return {?}\r\n */\r\n function () {\r\n return this.router.createUrlTree(this.commands, {\r\n relativeTo: this.route,\r\n queryParams: this.queryParams,\r\n fragment: this.fragment,\r\n preserveQueryParams: attrBoolValue(this.preserve),\r\n queryParamsHandling: this.queryParamsHandling,\r\n preserveFragment: attrBoolValue(this.preserveFragment),\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n OwlRouterLinkDirective.decorators = [\r\n { type: Directive, args: [{ selector: ':not(a)[owlRouterLink]' },] }\r\n ];\r\n OwlRouterLinkDirective.ctorParameters = function () { return [\r\n { type: Router },\r\n { type: ActivatedRoute },\r\n { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] },\r\n { type: Renderer2 },\r\n { type: ElementRef }\r\n ]; };\r\n OwlRouterLinkDirective.propDecorators = {\r\n queryParams: [{ type: Input }],\r\n fragment: [{ type: Input }],\r\n queryParamsHandling: [{ type: Input }],\r\n preserveFragment: [{ type: Input }],\r\n skipLocationChange: [{ type: Input }],\r\n replaceUrl: [{ type: Input }],\r\n stopLink: [{ type: Input }],\r\n owlRouterLink: [{ type: Input }],\r\n preserveQueryParams: [{ type: Input }],\r\n onClick: [{ type: HostListener, args: ['click',] }]\r\n };\r\n return OwlRouterLinkDirective;\r\n}());\r\n/**\r\n * \\@description\r\n *\r\n * Lets you link to specific routes in your app.\r\n *\r\n * See `RouterLink` for more information.\r\n *\r\n * \\@ngModule RouterModule\r\n *\r\n * \\@publicApi\r\n */\r\nvar OwlRouterLinkWithHrefDirective = /** @class */ (function () {\r\n function OwlRouterLinkWithHrefDirective(router, route, locationStrategy) {\r\n var _this = this;\r\n this.router = router;\r\n this.route = route;\r\n this.locationStrategy = locationStrategy;\r\n this.stopLink = false;\r\n this.commands = [];\r\n this.subscription = router.events.subscribe((/**\r\n * @param {?} s\r\n * @return {?}\r\n */\r\n function (s) {\r\n if (s instanceof NavigationEnd) {\r\n _this.updateTargetUrlAndHref();\r\n }\r\n }));\r\n }\r\n Object.defineProperty(OwlRouterLinkWithHrefDirective.prototype, \"owlRouterLink\", {\r\n set: /**\r\n * @param {?} commands\r\n * @return {?}\r\n */\r\n function (commands) {\r\n if (commands != null) {\r\n this.commands = Array.isArray(commands) ? commands : [commands];\r\n }\r\n else {\r\n this.commands = [];\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(OwlRouterLinkWithHrefDirective.prototype, \"preserveQueryParams\", {\r\n set: /**\r\n * @param {?} value\r\n * @return {?}\r\n */\r\n function (value) {\r\n if (isDevMode() && (/** @type {?} */ (console)) && (/** @type {?} */ (console.warn))) {\r\n console.warn('preserveQueryParams is deprecated, use queryParamsHandling instead.');\r\n }\r\n this.preserve = value;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {?} changes\r\n * @return {?}\r\n */\r\n OwlRouterLinkWithHrefDirective.prototype.ngOnChanges = /**\r\n * @param {?} changes\r\n * @return {?}\r\n */\r\n function (changes) { this.updateTargetUrlAndHref(); };\r\n /**\r\n * @return {?}\r\n */\r\n OwlRouterLinkWithHrefDirective.prototype.ngOnDestroy = /**\r\n * @return {?}\r\n */\r\n function () { this.subscription.unsubscribe(); };\r\n /**\r\n * @param {?} button\r\n * @param {?} ctrlKey\r\n * @param {?} metaKey\r\n * @param {?} shiftKey\r\n * @return {?}\r\n */\r\n OwlRouterLinkWithHrefDirective.prototype.onClick = /**\r\n * @param {?} button\r\n * @param {?} ctrlKey\r\n * @param {?} metaKey\r\n * @param {?} shiftKey\r\n * @return {?}\r\n */\r\n function (button, ctrlKey, metaKey, shiftKey) {\r\n if (button !== 0 || ctrlKey || metaKey || shiftKey) {\r\n return true;\r\n }\r\n if (typeof this.target === 'string' && this.target !== '_self') {\r\n return true;\r\n }\r\n if (this.stopLink) {\r\n return false;\r\n }\r\n /** @type {?} */\r\n var extras = {\r\n skipLocationChange: attrBoolValue(this.skipLocationChange),\r\n replaceUrl: attrBoolValue(this.replaceUrl),\r\n };\r\n this.router.navigateByUrl(this.urlTree, extras);\r\n return false;\r\n };\r\n /**\r\n * @private\r\n * @return {?}\r\n */\r\n OwlRouterLinkWithHrefDirective.prototype.updateTargetUrlAndHref = /**\r\n * @private\r\n * @return {?}\r\n */\r\n function () {\r\n this.href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree));\r\n };\r\n Object.defineProperty(OwlRouterLinkWithHrefDirective.prototype, \"urlTree\", {\r\n get: /**\r\n * @return {?}\r\n */\r\n function () {\r\n return this.router.createUrlTree(this.commands, {\r\n relativeTo: this.route,\r\n queryParams: this.queryParams,\r\n fragment: this.fragment,\r\n preserveQueryParams: attrBoolValue(this.preserve),\r\n queryParamsHandling: this.queryParamsHandling,\r\n preserveFragment: attrBoolValue(this.preserveFragment),\r\n });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n OwlRouterLinkWithHrefDirective.decorators = [\r\n { type: Directive, args: [{ selector: 'a[owlRouterLink]' },] }\r\n ];\r\n OwlRouterLinkWithHrefDirective.ctorParameters = function () { return [\r\n { type: Router },\r\n { type: ActivatedRoute },\r\n { type: LocationStrategy }\r\n ]; };\r\n OwlRouterLinkWithHrefDirective.propDecorators = {\r\n target: [{ type: HostBinding, args: ['attr.target',] }, { type: Input }],\r\n queryParams: [{ type: Input }],\r\n fragment: [{ type: Input }],\r\n queryParamsHandling: [{ type: Input }],\r\n preserveFragment: [{ type: Input }],\r\n skipLocationChange: [{ type: Input }],\r\n replaceUrl: [{ type: Input }],\r\n stopLink: [{ type: Input }],\r\n href: [{ type: HostBinding }],\r\n owlRouterLink: [{ type: Input }],\r\n preserveQueryParams: [{ type: Input }],\r\n onClick: [{ type: HostListener, args: ['click', ['$event.button', '$event.ctrlKey', '$event.metaKey', '$event.shiftKey'],] }]\r\n };\r\n return OwlRouterLinkWithHrefDirective;\r\n}());\r\n/**\r\n * @param {?} s\r\n * @return {?}\r\n */\r\nfunction attrBoolValue(s) {\r\n return s === '' || !!s;\r\n}\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar CarouselModule = /** @class */ (function () {\r\n function CarouselModule() {\r\n }\r\n CarouselModule.decorators = [\r\n { type: NgModule, args: [{\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [CarouselComponent, CarouselSlideDirective, StageComponent, OwlRouterLinkDirective, OwlRouterLinkWithHrefDirective],\r\n exports: [CarouselComponent, CarouselSlideDirective, OwlRouterLinkDirective, OwlRouterLinkWithHrefDirective],\r\n providers: [WINDOW_PROVIDERS, ResizeService, DOCUMENT_PROVIDERS, OwlLogger]\r\n },] }\r\n ];\r\n return CarouselModule;\r\n}());\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\n\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\n\nexport { CarouselModule, CarouselComponent, CarouselSlideDirective, SlidesOutputData, OwlRouterLinkDirective, OwlRouterLinkWithHrefDirective, StageComponent as ɵx, AnimateService as ɵt, AutoHeightService as ɵu, AutoplayService as ɵd, CarouselService as ɵb, BrowserDocumentRef as ɵn, DOCUMENT as ɵl, DOCUMENT_PROVIDERS as ɵr, DocumentRef as ɵm, browserDocumentProvider as ɵp, documentFactory as ɵo, documentProvider as ɵq, HashService as ɵv, LazyLoadService as ɵs, OwlLogger as ɵc, NavigationService as ɵa, ResizeService as ɵw, BrowserWindowRef as ɵg, WINDOW as ɵe, WINDOW_PROVIDERS as ɵk, WindowRef as ɵf, browserWindowProvider as ɵi, windowFactory as ɵh, windowProvider as ɵj };\n\n//# sourceMappingURL=ngx-owl-carousel-o.js.map","module.exports = \"html {\\r\\n scroll-behavior: smooth;\\r\\n}\\r\\n\\r\\n\\r\\n.centered-content {\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n\\r\\n.navigation.btn-three.prev {\\r\\n margin-right: 20px;\\r\\n}\\r\\n\\r\\n\\r\\n.upper-navbar {\\r\\n background-color: #795599;\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n}\\r\\n\\r\\n\\r\\n.arrow-directions {\\r\\n height: 100%;\\r\\n display: -webkit-box;\\r\\n display: flex;\\r\\n -webkit-box-align: center;\\r\\n align-items: center;\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n}\\r\\n\\r\\n\\r\\n.send-message-button {\\r\\n height: 45px;\\r\\n box-shadow: inset 0 2px 0 0 rgba(0, 0, 0, 0.3);\\r\\n background-color: #785499;\\r\\n color: white;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.course-image {\\r\\n height: 274px;\\r\\n width: 100% !important;\\r\\n margin: 0 auto;\\r\\n border-top-left-radius: 10px;\\r\\n border-top-right-radius: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.owl-stage {\\r\\n margin: 30px !important;\\r\\n}\\r\\n\\r\\n\\r\\n.Course .course-profile {\\r\\n display: inline;\\r\\n}\\r\\n\\r\\n\\r\\n.title {\\r\\n text-decoration: none !important;\\r\\n color: #2b3d4f;\\r\\n}\\r\\n\\r\\n\\r\\n.course-main-container {\\r\\n /* padding: 6px; */\\r\\n margin: 6px;\\r\\n border-radius: 10px;\\r\\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\\r\\n}\\r\\n\\r\\n\\r\\n.blog-image {\\r\\n width: 100%;\\r\\n max-height: 180px;\\r\\n margin: 0 auto;\\r\\n min-height: 180px;\\r\\n display: inherit;\\r\\n border-top-left-radius: 10px;\\r\\n border-top-left-radius: 10px;\\r\\n -o-object-fit: cover;\\r\\n object-fit: cover;\\r\\n}\\r\\n\\r\\n\\r\\n.blog-box {\\r\\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\\r\\n border-radius: 10px;\\r\\n /* text-align: center; */\\r\\n}\\r\\n\\r\\n\\r\\n.blog-box .data {\\r\\n padding: 15px; \\r\\n}\\r\\n\\r\\n\\r\\n.blog-box .title {\\r\\n text-decoration: none !important;\\r\\n color: #2b3d4f;\\r\\n font-size: 18px;\\r\\n}\\r\\n\\r\\n\\r\\n.blog-excerpt {\\r\\n color: #cac2c2;\\r\\n padding: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n.quote-main-container {\\r\\n padding: 32px;\\r\\n height: 380px;\\r\\n margin: 6px;\\r\\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\\r\\n}\\r\\n\\r\\n\\r\\n.see-more-container {\\r\\n margin-top: 68px;\\r\\n text-align: center;\\r\\n font-size: 22px;\\r\\n color: #785499;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.solution .blog-date {\\r\\n color: #2880ba;\\r\\n}\\r\\n\\r\\n\\r\\n.contact-page {\\r\\n z-index: 9999 !important;\\r\\n}\\r\\n\\r\\n\\r\\n.section-title {\\r\\n margin-top: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.not_rated {\\r\\n padding-top: 15px;\\r\\n color: silver;\\r\\n height: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.no-shadow {\\r\\n box-shadow: none;\\r\\n border: none;\\r\\n}\\r\\n\\r\\n\\r\\n.just-cent{\\r\\n -webkit-box-pack: center;\\r\\n justify-content: center;\\r\\n margin-top: 38px;\\r\\n}\\r\\n\\r\\n\\r\\n.radius-5 {\\r\\n border-radius: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n@media (min-width: 320px) and (max-width: 480px) {\\r\\n .blog-image {\\r\\n width: 100%;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n/* Start Slider Styling */\\r\\n\\r\\n\\r\\n/* @media only screen and (max-width: 767px) {\\r\\n .startup-home .main-banner .shape1, .startup-home .main-banner .shape, .startup-home .main-banner .shape6, .startup-home .main-banner .shape3, .startup-home .main-banner .shape9, .startup-home .main-banner .shape2 {\\r\\n display: none;\\r\\n }\\r\\n .startup-home.owl-theme .owl-nav [class*=owl-] {\\r\\n top: auto;\\r\\n bottom: 10px;\\r\\n }\\r\\n .startup-home.owl-theme .owl-nav [class*=owl-] {\\r\\n top: auto;\\r\\n bottom: 10px;\\r\\n }\\r\\n .screenshot-contain .owl-item.active.center img {\\r\\n border-radius: 0;\\r\\n }\\r\\n .feedback-slides .owl-item.active.center .single-feedback-box {\\r\\n margin-top: 0;\\r\\n }\\r\\n .screenshot-slides.owl-theme .owl-controls {\\r\\n line-height: .01;\\r\\n }\\r\\n .screenshot-slides.owl-theme .owl-controls .owl-nav {\\r\\n margin-top: 30px;\\r\\n margin-bottom: -8px;\\r\\n }\\r\\n .team-slides.owl-theme .owl-controls {\\r\\n line-height: .01;\\r\\n }\\r\\n .team-slides.owl-theme .owl-controls .owl-nav {\\r\\n margin-top: 0;\\r\\n margin-bottom: 22px;\\r\\n }\\r\\n .feedback-slides.owl-theme .owl-controls {\\r\\n line-height: .01;\\r\\n }\\r\\n .feedback-slides.owl-theme .owl-controls .owl-nav {\\r\\n margin-top: 0;\\r\\n margin-bottom: -8px;\\r\\n }\\r\\n .blog-slides.owl-theme .owl-controls {\\r\\n line-height: .01;\\r\\n }\\r\\n .blog-slides.owl-theme .owl-controls .owl-nav {\\r\\n margin-top: 0;\\r\\n margin-bottom: -8px;\\r\\n }\\r\\n .project-slides.owl-theme .owl-controls {\\r\\n line-height: .01;\\r\\n }\\r\\n .project-slides.owl-theme .owl-controls .owl-nav {\\r\\n margin-top: 0;\\r\\n margin-bottom: -8px;\\r\\n }\\r\\n .product-slides.owl-theme .owl-controls {\\r\\n line-height: .01;\\r\\n }\\r\\n .product-slides.owl-theme .owl-controls .owl-nav {\\r\\n margin-top: 0;\\r\\n margin-bottom: -8px;\\r\\n }\\r\\n .main-banner {\\r\\n height: 100%;\\r\\n padding-top: 140px;\\r\\n padding-bottom: 90px;\\r\\n overflow: hidden;\\r\\n }\\r\\n .main-banner .hero-content h1 {\\r\\n font-size: 34px;\\r\\n }\\r\\n .main-banner .hero-content p {\\r\\n font-size: 16px;\\r\\n margin-top: 20px;\\r\\n margin-bottom: 25px;\\r\\n }\\r\\n .main-banner .hero-content .video-btn {\\r\\n font-size: 14px;\\r\\n margin-left: 8px;\\r\\n }\\r\\n .main-banner .hero-content .video-btn i {\\r\\n font-size: 23px;\\r\\n margin-left: 3px;\\r\\n }\\r\\n .main-banner .hero-content form {\\r\\n max-width: 100%;\\r\\n position: relative;\\r\\n }\\r\\n .main-banner .hero-content form .btn {\\r\\n position: relative;\\r\\n width: 100%;\\r\\n display: block;\\r\\n margin-top: 13px;\\r\\n padding: 16px 0;\\r\\n }\\r\\n .main-banner .hero-content.pl-4 {\\r\\n padding-left: 0 !important;\\r\\n }\\r\\n .main-banner .app-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner .app-image img {\\r\\n position: relative;\\r\\n left: -10px;\\r\\n top: 0;\\r\\n width: 185px;\\r\\n }\\r\\n .main-banner .app-image img:last-child {\\r\\n position: absolute;\\r\\n top: 50px;\\r\\n right: 0;\\r\\n left: auto;\\r\\n }\\r\\n .main-banner .signup-download {\\r\\n padding: 20px;\\r\\n margin: 35px 0 0 0 !important;\\r\\n }\\r\\n .main-banner .saas-image {\\r\\n margin-bottom: 30px;\\r\\n }\\r\\n .main-banner .saas-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .saas-image img:last-child {\\r\\n display: block;\\r\\n }\\r\\n .main-banner.saas-home .shape1, .main-banner.saas-home .shape3 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.saas-home .shape3 {\\r\\n bottom: 10px;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner.saas-home .shape-1 {\\r\\n opacity: .2;\\r\\n }\\r\\n .main-banner .product-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner .product-image img {\\r\\n width: 165px;\\r\\n }\\r\\n .main-banner .product-image img:nth-child(2) {\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n }\\r\\n .main-banner .product-image .offer-badge {\\r\\n right: 0;\\r\\n top: 0;\\r\\n width: 80px;\\r\\n height: 80px;\\r\\n font-size: 15px;\\r\\n padding-top: 18px;\\r\\n }\\r\\n .main-banner.product-home .shape1, .main-banner.product-home .shape4, .main-banner.product-home .shape6 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.product-home .shape3 {\\r\\n bottom: 10px;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner.product-home .shape-1 {\\r\\n opacity: .2;\\r\\n }\\r\\n .main-banner.app-home .shape4 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.app-home .shape1 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.app-home .shape3 {\\r\\n bottom: 10px;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner.marketing-home {\\r\\n background: #ffffff url(../../../../../assets/img/bg-point.png) no-repeat fixed right -700px center/auto;\\r\\n }\\r\\n .main-banner.marketing-home .shape4, .main-banner.marketing-home .shape2 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.marketing-home .shape1 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.marketing-home .shape3 {\\r\\n bottom: 10px;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image img {\\r\\n display: none;\\r\\n position: relative;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image img:last-child {\\r\\n display: block;\\r\\n }\\r\\n .main-banner.marketing-home .bubble-animate, .main-banner.marketing-home .shape6 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.software-home .shape4, .main-banner.software-home .shape2, .main-banner.software-home .shape1, .main-banner.software-home .shape6 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.software-home .shape3 {\\r\\n bottom: 10px;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner.software-home .hero-content .video-btn {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.book-home .book-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner.book-home .book-image img {\\r\\n position: relative;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner.book-home .shape9, .main-banner.book-home .shape2 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.book-home .hero-content span {\\r\\n font-size: 15px;\\r\\n margin-bottom: 15px;\\r\\n }\\r\\n .main-banner.payment-processing-home .shape9, .main-banner.payment-processing-home .shape1, .main-banner.payment-processing-home .shape3, .main-banner.payment-processing-home .shape6 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner .paymant-processing-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner .paymant-processing-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .paymant-processing-image img:last-child {\\r\\n display: block;\\r\\n }\\r\\n .main-banner .startup-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner .startup-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .startup-image img:last-child {\\r\\n display: block;\\r\\n }\\r\\n .startup-home .main-banner .shape1, .startup-home .main-banner .shape, .startup-home .main-banner .shape6, .startup-home .main-banner .shape3, .startup-home .main-banner .shape9, .startup-home .main-banner .shape2 {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 768px) and (max-width: 991px) {\\r\\n .startup-home .main-banner .shape6, .startup-home .main-banner .shape2, .startup-home .main-banner .shape3, .startup-home .main-banner .shape9 {\\r\\n display: none;\\r\\n }\\r\\n\\r\\n .main-banner .startup-image {\\r\\n text-align: center;\\r\\n }\\r\\n .main-banner .startup-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .startup-image img:last-child {\\r\\n display: block;\\r\\n margin: 0 auto;\\r\\n }\\r\\n .main-banner .hero-content {\\r\\n margin-bottom: 45px;\\r\\n }\\r\\n .main-banner .hero-content h1 {\\r\\n font-size: 50px;\\r\\n }\\r\\n .main-banner .hero-content.pl-4 {\\r\\n padding-left: 0 !important;\\r\\n }\\r\\n .main-banner {\\r\\n height: 100%;\\r\\n padding-top: 170px;\\r\\n padding-bottom: 150px;\\r\\n }\\r\\n .main-banner .hero-content {\\r\\n margin-bottom: 45px;\\r\\n }\\r\\n .main-banner .hero-content h1 {\\r\\n font-size: 50px;\\r\\n }\\r\\n .main-banner .hero-content.pl-4 {\\r\\n padding-left: 0 !important;\\r\\n }\\r\\n .main-banner .signup-download {\\r\\n margin: 0 !important;\\r\\n }\\r\\n .main-banner.saas-home .col-lg-6:first-child {\\r\\n -webkit-box-ordinal-group: 3;\\r\\n -ms-flex-order: 2;\\r\\n order: 2;\\r\\n }\\r\\n .main-banner.saas-home .col-lg-6:last-child {\\r\\n -webkit-box-ordinal-group: 2;\\r\\n -ms-flex-order: 1;\\r\\n order: 1;\\r\\n }\\r\\n .main-banner.saas-home .saas-image {\\r\\n text-align: center;\\r\\n }\\r\\n .main-banner.saas-home .saas-image img {\\r\\n display: none;\\r\\n position: relative;\\r\\n }\\r\\n .main-banner.saas-home .saas-image img:last-child {\\r\\n display: block;\\r\\n margin: 0 auto;\\r\\n }\\r\\n .main-banner .app-image img {\\r\\n position: relative;\\r\\n left: 0;\\r\\n top: 0;\\r\\n }\\r\\n .main-banner .app-image img:last-child {\\r\\n left: auto;\\r\\n top: 0;\\r\\n position: absolute;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner .product-image img {\\r\\n position: relative;\\r\\n left: 45px;\\r\\n }\\r\\n .main-banner .product-image img:nth-child(2) {\\r\\n left: auto;\\r\\n right: 20px;\\r\\n bottom: 0;\\r\\n }\\r\\n .main-banner .product-image .offer-badge {\\r\\n right: 0;\\r\\n left: 0;\\r\\n text-align: center;\\r\\n margin: 0 auto;\\r\\n }\\r\\n .main-banner.book-home .book-image {\\r\\n text-align: center;\\r\\n }\\r\\n .main-banner.book-home .book-image img {\\r\\n position: relative;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n }\\r\\n .main-banner .paymant-processing-image {\\r\\n text-align: center;\\r\\n }\\r\\n .main-banner .paymant-processing-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .paymant-processing-image img:last-child {\\r\\n display: block;\\r\\n margin: 0 auto;\\r\\n }\\r\\n .main-banner .startup-image {\\r\\n text-align: center;\\r\\n }\\r\\n .main-banner .startup-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .startup-image img:last-child {\\r\\n display: block;\\r\\n margin: 0 auto;\\r\\n }\\r\\n .main-banner.marketing-home .shape3, .main-banner.marketing-home .shape1 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image {\\r\\n text-align: center;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image img:last-child {\\r\\n display: block;\\r\\n margin: 0 auto;\\r\\n }\\r\\n .startup-home .main-banner .shape6, .startup-home .main-banner .shape2, .startup-home .main-banner .shape3, .startup-home .main-banner .shape9 {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 992px) and (max-width: 1199px) {\\r\\n .screenshot-slides.owl-theme .owl-nav {\\r\\n margin-top: 30px;\\r\\n }\\r\\n\\r\\n .main-banner .startup-image img:nth-child(5) {\\r\\n left: 55px;\\r\\n }\\r\\n .main-banner .hero-content.pl-4 {\\r\\n padding-left: 0 !important;\\r\\n }\\r\\n .main-banner .hero-content h1 {\\r\\n font-size: 50px;\\r\\n }\\r\\n .main-banner {\\r\\n height: 100%;\\r\\n padding-top: 195px;\\r\\n padding-bottom: 160px;\\r\\n }\\r\\n .main-banner .hero-content.pl-4 {\\r\\n padding-left: 0 !important;\\r\\n }\\r\\n .main-banner .hero-content h1 {\\r\\n font-size: 50px;\\r\\n }\\r\\n .main-banner .startup-image img:nth-child(5) {\\r\\n left: 55px;\\r\\n }\\r\\n .main-banner .app-image img {\\r\\n left: 0;\\r\\n top: 15px;\\r\\n width: 280px;\\r\\n }\\r\\n .main-banner .app-image img:last-child {\\r\\n left: 200px;\\r\\n top: 20px;\\r\\n }\\r\\n .main-banner.marketing-home .shape1 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner.marketing-home .marketing-image img:last-child {\\r\\n display: block;\\r\\n }\\r\\n .main-banner.book-home .book-image img {\\r\\n bottom: -155px;\\r\\n right: 45px;\\r\\n width: 350px;\\r\\n }\\r\\n .main-banner .shape4, .main-banner .shape1 {\\r\\n display: none;\\r\\n }\\r\\n .main-banner .shape6 {\\r\\n opacity: .3;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 1200px) and (max-width: 1350px) {\\r\\n .main-banner .app-image img {\\r\\n width: 300px;\\r\\n top: 0;\\r\\n left: 35px;\\r\\n }\\r\\n .main-banner .app-image img:last-child {\\r\\n left: 235px;\\r\\n top: 5px;\\r\\n }\\r\\n .main-banner .paymant-processing-image {\\r\\n right: 0;\\r\\n top: 40px;\\r\\n width: 585px;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (min-width: 1910px) {\\r\\n .main-banner {\\r\\n height: 100vh;\\r\\n }\\r\\n .main-banner .app-image img {\\r\\n left: 0;\\r\\n top: -40px;\\r\\n width: 95%;\\r\\n }\\r\\n .main-banner .app-image img:last-child {\\r\\n left: 380px;\\r\\n top: -20px;\\r\\n }\\r\\n .main-banner .product-image img {\\r\\n width: auto;\\r\\n }\\r\\n .main-banner .product-image img:nth-child(2) {\\r\\n right: -145px;\\r\\n bottom: -60px;\\r\\n }\\r\\n .main-banner .book-image img {\\r\\n bottom: -280px !important;\\r\\n right: 0 !important;\\r\\n }\\r\\n .main-banner .shape4 {\\r\\n left: 20%;\\r\\n top: 23%;\\r\\n }\\r\\n .app-download .download-image img {\\r\\n left: -75px;\\r\\n top: 0;\\r\\n width: 485px;\\r\\n }\\r\\n .app-download .download-image img:last-child {\\r\\n left: 280px;\\r\\n top: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 767px) {\\r\\n .main-banner .startup-image {\\r\\n margin-top: 40px;\\r\\n }\\r\\n .main-banner .startup-image img {\\r\\n position: relative;\\r\\n display: none;\\r\\n }\\r\\n .main-banner .startup-image img:last-child {\\r\\n display: block;\\r\\n }\\r\\n .main-banner .hero-content h1 {\\r\\n font-size: 34px;\\r\\n }\\r\\n .main-banner .hero-content p {\\r\\n font-size: 16px;\\r\\n margin-top: 20px;\\r\\n margin-bottom: 25px;\\r\\n }\\r\\n .main-banner .hero-content .video-btn {\\r\\n font-size: 14px;\\r\\n margin-left: 8px;\\r\\n }\\r\\n .main-banner .hero-content .video-btn i {\\r\\n font-size: 23px;\\r\\n margin-left: 3px;\\r\\n }\\r\\n .main-banner .hero-content form {\\r\\n max-width: 100%;\\r\\n position: relative;\\r\\n }\\r\\n .main-banner .hero-content form .btn {\\r\\n position: relative;\\r\\n width: 100%;\\r\\n display: block;\\r\\n margin-top: 13px;\\r\\n padding: 16px 0;\\r\\n }\\r\\n .main-banner .hero-content.pl-4 {\\r\\n padding-left: 0 !important;\\r\\n }\\r\\n .main-banner.software-home .hero-content .video-btn {\\r\\n display: none;\\r\\n }\\r\\n .main-banner.book-home .hero-content span {\\r\\n font-size: 15px;\\r\\n margin-bottom: 15px;\\r\\n }\\r\\n}\\r\\n\\r\\n.startup-home .main-banner {\\r\\n background-position: center;\\r\\n background-size: cover;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.startup-home .main-banner::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n background: #000000;\\r\\n z-index: -1;\\r\\n opacity: .95;\\r\\n}\\r\\n\\r\\n.startup-home .startup-bg1 {\\r\\n background-image: url(../../../../../assets/img/main-bg-1.jpg);\\r\\n}\\r\\n\\r\\n.startup-home .startup-bg2 {\\r\\n background-image: url(../../../../../assets/img/main-bg-2.jpg);\\r\\n}\\r\\n\\r\\n.startup-home .startup-bg3 {\\r\\n background-image: url(../../../../../assets/img/main-bg-3.jpg);\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav [class*=owl-] {\\r\\n position: absolute;\\r\\n left: 10px;\\r\\n top: 50%;\\r\\n margin: 0;\\r\\n width: 45px;\\r\\n height: 45px;\\r\\n background: rgba(255, 255, 255, 0.1);\\r\\n line-height: 42px;\\r\\n font-size: 30px;\\r\\n border-radius: 5px;\\r\\n margin-top: -25px;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav [class*=owl-].owl-next {\\r\\n left: auto;\\r\\n right: 10px;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav [class*=owl-]:hover {\\r\\n background: #13c4a1;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav [class*=owl-] {\\r\\n position: absolute;\\r\\n left: 10px;\\r\\n top: 50%;\\r\\n margin: 0;\\r\\n width: 45px;\\r\\n height: 45px;\\r\\n background: rgba(255, 255, 255, 0.1);\\r\\n line-height: 42px;\\r\\n font-size: 30px;\\r\\n border-radius: 5px;\\r\\n margin-top: -25px;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav [class*=owl-].owl-next {\\r\\n left: auto;\\r\\n right: 10px;\\r\\n}\\r\\n\\r\\n.startup-home.owl-theme .owl-nav [class*=owl-]:hover {\\r\\n background: #13c4a1;\\r\\n}\\r\\n \\r\\n.project-area .owl-theme .owl-nav {\\r\\n margin-top: 15px;\\r\\n line-height: .01;\\r\\n margin-bottom: -8px;\\r\\n}\\r\\n\\r\\n.project-area .owl-theme .owl-nav [class*=owl-] {\\r\\n color: #FF8A73;\\r\\n font-size: 30px;\\r\\n margin: 0 3px;\\r\\n padding: 0;\\r\\n background: transparent;\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.project-area .owl-theme .owl-nav [class*=owl-]:hover {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.project-area .owl-theme .owl-controls {\\r\\n line-height: .1;\\r\\n}\\r\\n\\r\\n.screenshot-slides.owl-theme .owl-nav {\\r\\n margin-top: 135px;\\r\\n}\\r\\n\\r\\n.screenshot-slides.owl-theme .owl-nav [class*=owl-] {\\r\\n color: #FF8A73;\\r\\n font-size: 30px;\\r\\n margin: 0 3px;\\r\\n padding: 0;\\r\\n background: transparent;\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.screenshot-slides.owl-theme .owl-nav [class*=owl-]:hover {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.screenshot-slides.owl-theme .owl-controls {\\r\\n line-height: .1;\\r\\n}\\r\\n\\r\\n.page-from-book .owl-theme .owl-nav {\\r\\n margin-top: 50px;\\r\\n}\\r\\n\\r\\n.team-slides.owl-theme .owl-nav {\\r\\n line-height: .01;\\r\\n margin-top: 10px;\\r\\n margin-bottom: 22px;\\r\\n}\\r\\n\\r\\n.team-slides.owl-theme .owl-nav [class*=owl-] {\\r\\n color: #FF8A73;\\r\\n font-size: 30px;\\r\\n margin: 0 3px;\\r\\n padding: 0;\\r\\n background: transparent;\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.team-slides.owl-theme .owl-nav [class*=owl-]:hover {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.team-slides.owl-theme .owl-controls {\\r\\n line-height: .1;\\r\\n}\\r\\n\\r\\n.feedback-slides .owl-item .single-feedback {\\r\\n opacity: .5;\\r\\n -webkit-transition: .5s;\\r\\n transition: .5s;\\r\\n}\\r\\n\\r\\n.feedback-slides .owl-item .single-feedback::before {\\r\\n opacity: 0;\\r\\n visibility: hidden;\\r\\n}\\r\\n\\r\\n.feedback-slides .owl-item.active.center .single-feedback {\\r\\n opacity: 1;\\r\\n -webkit-transition: .5s;\\r\\n transition: .5s;\\r\\n -webkit-box-shadow: 0 0 1.25rem rgba(108, 118, 134, 0.1);\\r\\n box-shadow: 0 0 1.25rem rgba(108, 118, 134, 0.1);\\r\\n}\\r\\n\\r\\n.feedback-slides .owl-item.active.center .single-feedback::before {\\r\\n opacity: 1;\\r\\n visibility: visible;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.feedback-slides .owl-item.active.center .single-feedback-box {\\r\\n margin-top: 30px;\\r\\n}\\r\\n\\r\\n.feedback-slides.owl-theme .owl-nav {\\r\\n line-height: .01;\\r\\n margin-top: 20px;\\r\\n margin-bottom: -8px;\\r\\n}\\r\\n\\r\\n.feedback-slides.owl-theme .owl-nav [class*=owl-] {\\r\\n color: #FF8A73;\\r\\n font-size: 30px;\\r\\n margin: 0 3px;\\r\\n padding: 0;\\r\\n background: transparent;\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.feedback-slides.owl-theme .owl-nav [class*=owl-]:hover {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.feedback-slides.owl-theme .owl-controls {\\r\\n line-height: .1;\\r\\n}\\r\\n\\r\\n.blog-area .owl-theme .owl-nav {\\r\\n margin-top: 0;\\r\\n margin-bottom: -8px;\\r\\n line-height: .01;\\r\\n}\\r\\n\\r\\n.blog-area .owl-theme .owl-nav [class*=owl-] {\\r\\n color: #FF8A73;\\r\\n font-size: 30px;\\r\\n margin: 0 3px;\\r\\n padding: 0;\\r\\n background: transparent;\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.blog-area .owl-theme .owl-nav [class*=owl-]:hover {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.blog-area .owl-theme .owl-controls {\\r\\n line-height: .1;\\r\\n}\\r\\n\\r\\n.partner-area .owl-controls .owl-nav {\\r\\n margin-top: 0;\\r\\n}\\r\\n\\r\\n.product-slides.owl-theme .owl-nav {\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.product-slides.owl-theme .owl-nav [class*=owl-] {\\r\\n color: #FF8A73;\\r\\n font-size: 30px;\\r\\n margin: 0 3px;\\r\\n padding: 0;\\r\\n background: transparent;\\r\\n display: inline-block;\\r\\n cursor: pointer;\\r\\n border-radius: 0;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.product-slides.owl-theme .owl-nav [class*=owl-]:hover {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.product-slides.owl-theme .owl-controls {\\r\\n line-height: .1;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img {\\r\\n position: absolute;\\r\\n width: unset !important;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(1) {\\r\\n top: 45px;\\r\\n right: 23%;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(2) {\\r\\n left: 20px;\\r\\n top: -35px;\\r\\n right: 0;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(3) {\\r\\n right: 0;\\r\\n top: 65px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(4) {\\r\\n left: 85px;\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(5) {\\r\\n left: 110px;\\r\\n top: 132px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(6) {\\r\\n right: 8%;\\r\\n top: 131px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(7) {\\r\\n right: 20%;\\r\\n top: -30px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(8) {\\r\\n right: 38%;\\r\\n top: 64px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(9) {\\r\\n right: 0;\\r\\n top: -15px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(10) {\\r\\n left: 0;\\r\\n top: 245px;\\r\\n right: 0;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:last-child {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.shape-1 {\\r\\n left: 20px;\\r\\n bottom: 10px;\\r\\n height: 150px;\\r\\n width: 150px;\\r\\n position: absolute;\\r\\n border-radius: 50%;\\r\\n z-index: -1;\\r\\n opacity: .5;\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n}\\r\\n\\r\\n.shape1 {\\r\\n position: absolute;\\r\\n top: 85px;\\r\\n z-index: -1;\\r\\n left: 30px;\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n}\\r\\n\\r\\n.shape2 {\\r\\n position: absolute;\\r\\n top: 85px;\\r\\n z-index: -1;\\r\\n right: 30px;\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n}\\r\\n\\r\\n.shape3 {\\r\\n position: absolute;\\r\\n bottom: 85px;\\r\\n z-index: -1;\\r\\n right: 30px;\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n}\\r\\n\\r\\n.shape6 {\\r\\n position: absolute;\\r\\n top: 30%;\\r\\n z-index: -1;\\r\\n left: 30px;\\r\\n -webkit-animation: rotate3d 4s linear infinite;\\r\\n animation: rotate3d 4s linear infinite;\\r\\n opacity: .6;\\r\\n}\\r\\n\\r\\n.shape8 {\\r\\n position: absolute;\\r\\n z-index: -1;\\r\\n top: 60%;\\r\\n left: 15%;\\r\\n}\\r\\n\\r\\n.shape9 {\\r\\n position: absolute;\\r\\n left: 45%;\\r\\n top: 40%;\\r\\n z-index: -1;\\r\\n -webkit-animation: animationFramesOne 15s infinite linear;\\r\\n animation: animationFramesOne 15s infinite linear;\\r\\n}\\r\\n\\r\\n.rotateme {\\r\\n -webkit-animation-name: rotateme;\\r\\n animation-name: rotateme;\\r\\n -webkit-animation-duration: 40s;\\r\\n animation-duration: 40s;\\r\\n -webkit-animation-iteration-count: infinite;\\r\\n animation-iteration-count: infinite;\\r\\n -webkit-animation-timing-function: linear;\\r\\n animation-timing-function: linear;\\r\\n}\\r\\n\\r\\n@keyframes rotateme {\\r\\n from {\\r\\n -webkit-transform: rotate(0deg);\\r\\n transform: rotate(0deg);\\r\\n }\\r\\n to {\\r\\n -webkit-transform: rotate(360deg);\\r\\n transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotateme {\\r\\n from {\\r\\n -webkit-transform: rotate(0deg);\\r\\n }\\r\\n to {\\r\\n -webkit-transform: rotate(360deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes animationFramesOne {\\r\\n 0% {\\r\\n -webkit-transform: translate(0px, 0px) rotate(0deg);\\r\\n transform: translate(0px, 0px) rotate(0deg);\\r\\n }\\r\\n 20% {\\r\\n -webkit-transform: translate(73px, -1px) rotate(36deg);\\r\\n transform: translate(73px, -1px) rotate(36deg);\\r\\n }\\r\\n 40% {\\r\\n -webkit-transform: translate(141px, 72px) rotate(72deg);\\r\\n transform: translate(141px, 72px) rotate(72deg);\\r\\n }\\r\\n 60% {\\r\\n -webkit-transform: translate(83px, 122px) rotate(108deg);\\r\\n transform: translate(83px, 122px) rotate(108deg);\\r\\n }\\r\\n 80% {\\r\\n -webkit-transform: translate(-40px, 72px) rotate(144deg);\\r\\n transform: translate(-40px, 72px) rotate(144deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: translate(0px, 0px) rotate(0deg);\\r\\n transform: translate(0px, 0px) rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@-webkit-keyframes animationFramesOne {\\r\\n 0% {\\r\\n -webkit-transform: translate(0px, 0px) rotate(0deg);\\r\\n }\\r\\n 20% {\\r\\n -webkit-transform: translate(73px, -1px) rotate(36deg);\\r\\n }\\r\\n 40% {\\r\\n -webkit-transform: translate(141px, 72px) rotate(72deg);\\r\\n }\\r\\n 60% {\\r\\n -webkit-transform: translate(83px, 122px) rotate(108deg);\\r\\n }\\r\\n 80% {\\r\\n -webkit-transform: translate(-40px, 72px) rotate(144deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: translate(0px, 0px) rotate(0deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@-webkit-keyframes movebounce {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0px);\\r\\n transform: translateY(0px);\\r\\n }\\r\\n 50% {\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: translateY(0px);\\r\\n transform: translateY(0px);\\r\\n }\\r\\n}\\r\\n\\r\\n@-webkit-keyframes rotate3d {\\r\\n 0% {\\r\\n -webkit-transform: rotateY(0deg);\\r\\n transform: rotateY(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotateY(360deg);\\r\\n transform: rotateY(360deg);\\r\\n }\\r\\n}\\r\\n\\r\\n@keyframes rotate3d {\\r\\n 0% {\\r\\n -webkit-transform: rotateY(0deg);\\r\\n transform: rotateY(0deg);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: rotateY(360deg);\\r\\n transform: rotateY(360deg);\\r\\n }\\r\\n}\\r\\n\\r\\n.main-banner .hero-content h1 {\\r\\n color: #ffffff;\\r\\n font-size: 60px;\\r\\n font-weight: 700;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content p {\\r\\n color: #f2f2f2;\\r\\n font-size: 18px;\\r\\n margin-top: 30px;\\r\\n margin-bottom: 35px;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .btn:hover::after, .main-banner .hero-content .btn:hover::before {\\r\\n background: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .btn-primary:not(:disabled):not(.disabled).active, .main-banner .hero-content .btn-primary:not(:disabled):not(.disabled):active, .main-banner .hero-content .btn-primary .show > .btn-primary.dropdown-toggle {\\r\\n color: #FF8A73;\\r\\n background: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .btn-primary:hover, .main-banner .hero-content .btn-primary:focus {\\r\\n background: #ffffff;\\r\\n color: #FF8A73;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .video-btn {\\r\\n margin-left: 15px;\\r\\n color: #ffffff;\\r\\n text-transform: uppercase;\\r\\n font-size: 15px;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .video-btn i {\\r\\n font-size: 30px;\\r\\n position: relative;\\r\\n margin-left: 5px;\\r\\n top: 4px;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .video-btn:hover i {\\r\\n color: #FF8A73;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form {\\r\\n max-width: 540px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control {\\r\\n height: 70px;\\r\\n background: rgba(255, 255, 255, 0.1);\\r\\n -webkit-box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.1);\\r\\n box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.1);\\r\\n border: none;\\r\\n border-radius: 3px;\\r\\n color: #ffffff;\\r\\n padding-left: 20px;\\r\\n background: #13c4a1;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control::-webkit-input-placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control:-ms-input-placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control::-ms-input-placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control::placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .btn {\\r\\n position: absolute;\\r\\n right: 0;\\r\\n top: 0;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content h1 {\\r\\n color: #000000;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content p {\\r\\n color: #818992;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .video-btn {\\r\\n color: #716c80;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .video-btn:hover i, .main-banner.marketing-home .hero-content .video-btn:focus i {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .btn:hover::after, .main-banner.marketing-home .hero-content .btn:hover::before {\\r\\n background: #13c4a1;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .btn-primary:not(:disabled):not(.disabled).active, .main-banner.marketing-home .hero-content .btn-primary:not(:disabled):not(.disabled):active, .main-banner.marketing-home .hero-content .btn-primary .show > .btn-primary.dropdown-toggle {\\r\\n background: #13c4a1;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .btn-primary:hover, .main-banner.marketing-home .hero-content .btn-primary:focus {\\r\\n background: #13c4a1;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner.book-home .hero-content span {\\r\\n color: #ffffff;\\r\\n display: inline-block;\\r\\n font-size: 18px;\\r\\n margin-bottom: 10px;\\r\\n font-weight: 700;\\r\\n border-left: 3px solid #ffffff;\\r\\n padding-left: 10px;\\r\\n}\\r\\n\\r\\n.main-banner.book-home .hero-content em.inlucdebooks {\\r\\n display: block;\\r\\n color: #f2f2f2;\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.d-table {\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.d-table-cell {\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.main-banner {\\r\\n height: 840px;\\r\\n background: #13c4a1;\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content h1 {\\r\\n color: #ffffff;\\r\\n font-size: 60px;\\r\\n font-weight: 700;\\r\\n margin: 0;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content p {\\r\\n color: #f2f2f2;\\r\\n font-size: 18px;\\r\\n margin-top: 30px;\\r\\n margin-bottom: 35px;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .btn:hover::after, .main-banner .hero-content .btn:hover::before {\\r\\n background: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .btn-primary:not(:disabled):not(.disabled).active, .main-banner .hero-content .btn-primary:not(:disabled):not(.disabled):active, .main-banner .hero-content .btn-primary .show > .btn-primary.dropdown-toggle {\\r\\n color: #FF8A73;\\r\\n background: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .btn-primary:hover, .main-banner .hero-content .btn-primary:focus {\\r\\n background: #ffffff;\\r\\n color: #FF8A73;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .video-btn {\\r\\n margin-left: 15px;\\r\\n color: #ffffff;\\r\\n text-transform: uppercase;\\r\\n font-size: 15px;\\r\\n font-weight: 700;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .video-btn i {\\r\\n font-size: 30px;\\r\\n position: relative;\\r\\n margin-left: 5px;\\r\\n top: 4px;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content .video-btn:hover i {\\r\\n color: #FF8A73;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form {\\r\\n max-width: 540px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control {\\r\\n height: 70px;\\r\\n background: rgba(255, 255, 255, 0.1);\\r\\n -webkit-box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.1);\\r\\n box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.1);\\r\\n border: none;\\r\\n border-radius: 3px;\\r\\n color: #ffffff;\\r\\n padding-left: 20px;\\r\\n background: #13c4a1;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control::-webkit-input-placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control:-ms-input-placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control::-ms-input-placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .form-control::placeholder {\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner .hero-content form .btn {\\r\\n position: absolute;\\r\\n right: 0;\\r\\n top: 0;\\r\\n height: 100%;\\r\\n}\\r\\n\\r\\n.main-banner .signup-download {\\r\\n background: #ffffff;\\r\\n padding: 30px 40px;\\r\\n border-radius: 3px;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .signup-download::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n z-index: -1;\\r\\n background: #ffffff;\\r\\n width: 96%;\\r\\n opacity: .62;\\r\\n height: 50%;\\r\\n bottom: -6px;\\r\\n left: 0;\\r\\n right: 0;\\r\\n margin: auto;\\r\\n border-radius: 3px;\\r\\n -webkit-transition: .4s;\\r\\n transition: .4s;\\r\\n}\\r\\n\\r\\n.main-banner .signup-download form .form-group {\\r\\n margin-bottom: 20px;\\r\\n}\\r\\n\\r\\n.main-banner .signup-download form .form-group label {\\r\\n display: block;\\r\\n margin-bottom: 8px;\\r\\n font-weight: 700;\\r\\n font-size: 17px;\\r\\n}\\r\\n\\r\\n.main-banner .signup-download form .btn {\\r\\n display: block;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.main-banner .app-image img {\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: -40px;\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n width: 400px;\\r\\n}\\r\\n\\r\\n.main-banner .app-image img:last-child {\\r\\n -webkit-animation: movebounce 6s linear infinite;\\r\\n animation: movebounce 6s linear infinite;\\r\\n left: 270px;\\r\\n top: -20px;\\r\\n}\\r\\n\\r\\n.main-banner .product-image {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .product-image img {\\r\\n -webkit-animation: movebounce 6s linear infinite;\\r\\n animation: movebounce 6s linear infinite;\\r\\n width: 300px;\\r\\n}\\r\\n\\r\\n.main-banner .product-image img:nth-child(2) {\\r\\n position: absolute;\\r\\n right: -45px;\\r\\n bottom: -60px;\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n}\\r\\n\\r\\n.main-banner .product-image .offer-badge {\\r\\n position: absolute;\\r\\n right: 90px;\\r\\n top: 30px;\\r\\n width: 100px;\\r\\n height: 100px;\\r\\n background: #FF8A73;\\r\\n color: #ffffff;\\r\\n border-radius: 50%;\\r\\n text-align: center;\\r\\n -webkit-animation: ripple-white 1s linear infinite;\\r\\n animation: ripple-white 1s linear infinite;\\r\\n font-size: 18px;\\r\\n font-weight: 700;\\r\\n padding-top: 25px;\\r\\n}\\r\\n\\r\\n.main-banner .product-image .offer-badge span {\\r\\n display: block;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img {\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(1) {\\r\\n top: -200px;\\r\\n left: 0;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(2) {\\r\\n left: 55px;\\r\\n top: -100px;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(3) {\\r\\n left: 36%;\\r\\n z-index: 1;\\r\\n top: -170px;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(4) {\\r\\n right: 27%;\\r\\n top: 110px;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(5) {\\r\\n right: 15%;\\r\\n top: 80px;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(6) {\\r\\n right: 25%;\\r\\n top: -170px;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(7) {\\r\\n right: 47%;\\r\\n top: 96px;\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(8) {\\r\\n right: 22%;\\r\\n top: 45px;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(9) {\\r\\n right: 75px;\\r\\n top: 20px;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(10) {\\r\\n left: 32%;\\r\\n top: -76px;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(11) {\\r\\n right: 40%;\\r\\n top: -20px;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:nth-child(12) {\\r\\n top: -292px;\\r\\n left: 45px;\\r\\n}\\r\\n\\r\\n.main-banner .saas-image img:last-child {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img {\\r\\n position: absolute;\\r\\n width: unset !important;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(1) {\\r\\n top: 45px;\\r\\n right: 23%;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(2) {\\r\\n left: 20px;\\r\\n top: -35px;\\r\\n right: 0;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(3) {\\r\\n right: 0;\\r\\n top: 65px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(4) {\\r\\n left: 85px;\\r\\n top: 0;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(5) {\\r\\n left: 110px;\\r\\n top: 132px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(6) {\\r\\n right: 8%;\\r\\n top: 131px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(7) {\\r\\n right: 20%;\\r\\n top: -30px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(8) {\\r\\n right: 38%;\\r\\n top: 64px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(9) {\\r\\n right: 0;\\r\\n top: -15px;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:nth-child(10) {\\r\\n left: 0;\\r\\n top: 245px;\\r\\n right: 0;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner .startup-image img:last-child {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image {\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img {\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(1) {\\r\\n top: 135px;\\r\\n right: 0;\\r\\n left: 30px;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(2) {\\r\\n right: 0;\\r\\n top: 25px;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(3) {\\r\\n right: 0;\\r\\n top: 275px;\\r\\n left: 65%;\\r\\n margin: 0 auto;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(4) {\\r\\n top: 170px;\\r\\n z-index: 1;\\r\\n left: 20px;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(5) {\\r\\n left: 115px;\\r\\n top: 240px;\\r\\n z-index: 1;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(6) {\\r\\n right: 0;\\r\\n top: -75px;\\r\\n left: 9px;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(7) {\\r\\n right: 0;\\r\\n top: 23px;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(8) {\\r\\n left: 0;\\r\\n top: -45px;\\r\\n z-index: -1;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:nth-child(9) {\\r\\n right: 21%;\\r\\n top: 16px;\\r\\n}\\r\\n\\r\\n.main-banner .paymant-processing-image img:last-child {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home {\\r\\n background: #ffffff url(\\\"../../../../../assets/img/bg-point.png\\\") no-repeat fixed right -500px center/auto;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content h1 {\\r\\n color: #000000;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content p {\\r\\n color: #818992;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .video-btn {\\r\\n color: #716c80;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .video-btn:hover i, .main-banner.marketing-home .hero-content .video-btn:focus i {\\r\\n color: #13c4a1;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .btn:hover::after, .main-banner.marketing-home .hero-content .btn:hover::before {\\r\\n background: #13c4a1;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .btn-primary:not(:disabled):not(.disabled).active, .main-banner.marketing-home .hero-content .btn-primary:not(:disabled):not(.disabled):active, .main-banner.marketing-home .hero-content .btn-primary .show > .btn-primary.dropdown-toggle {\\r\\n background: #13c4a1;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .hero-content .btn-primary:hover, .main-banner.marketing-home .hero-content .btn-primary:focus {\\r\\n background: #13c4a1;\\r\\n color: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image {\\r\\n position: relative;\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img {\\r\\n position: absolute;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(1) {\\r\\n right: 0;\\r\\n top: -45px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(2) {\\r\\n left: 90px;\\r\\n top: -30px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(3) {\\r\\n left: 60px;\\r\\n top: 165px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(4) {\\r\\n left: 0;\\r\\n right: -15px;\\r\\n text-align: center;\\r\\n margin: 0 auto;\\r\\n top: 185px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(5) {\\r\\n bottom: -55px;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(6) {\\r\\n bottom: -50px;\\r\\n right: 140px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(7) {\\r\\n left: 198px;\\r\\n bottom: -55px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(8) {\\r\\n left: 80px;\\r\\n bottom: -40px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(9) {\\r\\n right: 65px;\\r\\n bottom: 0;\\r\\n -webkit-animation: rotate3d 4s linear infinite;\\r\\n animation: rotate3d 4s linear infinite;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(10) {\\r\\n left: 50px;\\r\\n top: 85px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(11) {\\r\\n right: 195px;\\r\\n bottom: -55px;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(12) {\\r\\n top: 100px;\\r\\n right: -4px;\\r\\n left: 0;\\r\\n text-align: center;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:nth-child(13) {\\r\\n left: 62px;\\r\\n right: 0;\\r\\n margin: 0 auto;\\r\\n text-align: center;\\r\\n top: 20px;\\r\\n -webkit-animation: rotate3d 6s linear infinite;\\r\\n animation: rotate3d 6s linear infinite;\\r\\n}\\r\\n\\r\\n.main-banner.marketing-home .marketing-image img:last-child {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.main-banner.product-home .shape4 {\\r\\n left: auto;\\r\\n right: 20%;\\r\\n top: 25%;\\r\\n}\\r\\n\\r\\n.main-banner.software-home .bubble-animate .circle {\\r\\n background: #ffffff;\\r\\n}\\r\\n\\r\\n.main-banner.payment-processing-home .creative-shape img {\\r\\n width: 100%;\\r\\n height: 55px;\\r\\n}\\r\\n\\r\\n.main-banner.book-home {\\r\\n background-image: url(../../../../../assets/img/book-banner.jpg);\\r\\n background-position: center;\\r\\n background-size: cover;\\r\\n background-attachment: fixed;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.main-banner.book-home::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n background: #000000;\\r\\n z-index: -1;\\r\\n opacity: .87;\\r\\n}\\r\\n\\r\\n.main-banner.book-home .hero-content span {\\r\\n color: #ffffff;\\r\\n display: inline-block;\\r\\n font-size: 18px;\\r\\n margin-bottom: 10px;\\r\\n font-weight: 700;\\r\\n border-left: 3px solid #ffffff;\\r\\n padding-left: 10px;\\r\\n}\\r\\n\\r\\n.main-banner.book-home .hero-content em.inlucdebooks {\\r\\n display: block;\\r\\n color: #f2f2f2;\\r\\n margin-top: 20px;\\r\\n}\\r\\n\\r\\n.main-banner.book-home .book-image {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n position: relative;\\r\\n}\\r\\n\\r\\n.main-banner.book-home .book-image img {\\r\\n position: absolute;\\r\\n bottom: -215px;\\r\\n right: 45px;\\r\\n}\\r\\n\\r\\n.startup-home .main-banner {\\r\\n background-position: center;\\r\\n background-size: cover;\\r\\n background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.startup-home .main-banner::before {\\r\\n content: '';\\r\\n position: absolute;\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n background: #000000;\\r\\n z-index: -1;\\r\\n opacity: .95;\\r\\n} */\\r\\n\\r\\n\\r\\n/* End Slider Styling */\\r\\n\\r\\n\\r\\n/* Start App Download Section */\\r\\n\\r\\n\\r\\n@-webkit-keyframes movebounce {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0px);\\r\\n transform: translateY(0px);\\r\\n }\\r\\n 50% {\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: translateY(0px);\\r\\n transform: translateY(0px);\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@keyframes movebounce {\\r\\n 0% {\\r\\n -webkit-transform: translateY(0px);\\r\\n transform: translateY(0px);\\r\\n }\\r\\n 50% {\\r\\n -webkit-transform: translateY(20px);\\r\\n transform: translateY(20px);\\r\\n }\\r\\n 100% {\\r\\n -webkit-transform: translateY(0px);\\r\\n transform: translateY(0px);\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n.bg-gray {\\r\\n background-color: #edf5ff;\\r\\n}\\r\\n\\r\\n\\r\\n.bg-pink {\\r\\n background-color: #f3f0f7;\\r\\n}\\r\\n\\r\\n\\r\\n.ptb-100 {\\r\\n padding-top: 50px;\\r\\n padding-bottom: 50px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download {\\r\\n position: relative;\\r\\n z-index: 1;\\r\\n margin-top: 120px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title {\\r\\n text-align: left;\\r\\n margin-bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title h2 {\\r\\n color: #000000 !important;\\r\\n font-family: \\\"RiftSoft-Medium\\\", \\\"Almarai-Bold\\\";\\r\\n font-size: 42px;\\r\\n font-weight: 700;\\r\\n margin-bottom: 100px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title h2::after {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title p {\\r\\n margin-left: 0;\\r\\n margin-right: 0;\\r\\n margin-bottom: 35px;\\r\\n text-transform: none;\\r\\n font-size: 15px;\\r\\n font-weight: 500;\\r\\n color: #000000;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title .download-btn a {\\r\\n position: relative;\\r\\n display: inline-block;\\r\\n width: 50%;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title .download-btn a i {\\r\\n position: absolute;\\r\\n left: 10px;\\r\\n top: 50%;\\r\\n font-size: 45px;\\r\\n margin-top: -22px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title .download-btn a .google-play-icon {\\r\\n position: absolute;\\r\\n left: 10px;\\r\\n top: 50%;\\r\\n font-size: 45px;\\r\\n margin-top: -23px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title .download-btn a span {\\r\\n display: block;\\r\\n font-weight: 700;\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title .download-btn a:hover, .app-download .section-title .download-btn a:focus {\\r\\n /* background: #785499; */\\r\\n -webkit-transform: translateY(-5px);\\r\\n transform: translateY(-5px);\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .download-image {\\r\\n position: absolute;\\r\\n right: 0;\\r\\n z-index: -1;\\r\\n width: 100%;\\r\\n height: 100%;\\r\\n bottom: 295px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .download-image img {\\r\\n -webkit-animation: movebounce 5s linear infinite;\\r\\n animation: movebounce 5s linear infinite;\\r\\n position: absolute;\\r\\n left: 0 !important;\\r\\n right: 0 !important;\\r\\n top: 0;\\r\\n width: 445px;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n\\r\\n.google-play-icon {\\r\\n font-size: 45px;\\r\\n}\\r\\n\\r\\n\\r\\n.apple-store-icon {\\r\\n font-size: 45px;\\r\\n}\\r\\n\\r\\n\\r\\n.app-download .section-title .arabic {\\r\\n font-family: \\\"RiftSoft-Medium\\\", \\\"Almarai-Bold\\\" !important;\\r\\n text-align: right;\\r\\n direction: rtl;\\r\\n letter-spacing: 0;\\r\\n}\\r\\n\\r\\n\\r\\n@media only screen and (max-width: 767px) {\\r\\n .app-download .download-image {\\r\\n position: relative;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n margin-top: 30px;\\r\\n text-align: center;\\r\\n }\\r\\n .app-download .download-image img {\\r\\n position: relative;\\r\\n top: 0 !important;\\r\\n left: 0 !important;\\r\\n width: 220px;\\r\\n left: 0;\\r\\n right: 0;\\r\\n }\\r\\n .app-download .section-title .download-btn a {\\r\\n width: 50%;\\r\\n }\\r\\n .app-download .section-title .download-btn a img {\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n@media only screen and (min-width: 768px) and (max-width: 991px) {\\r\\n .app-download .download-image {\\r\\n position: relative;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n margin-top: 45px;\\r\\n text-align: center;\\r\\n }\\r\\n .app-download .download-image img {\\r\\n position: relative;\\r\\n left: 0 !important;\\r\\n top: 0 !important;\\r\\n width: 410px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media only screen and (min-width: 992px) and (max-width: 1199px) {\\r\\n .app-download .download-image {\\r\\n bottom: 200px;\\r\\n }\\r\\n .app-download .download-image img {\\r\\n left: -10px;\\r\\n top: 0;\\r\\n width: 310px;\\r\\n }\\r\\n .app-download .download-image img:last-child {\\r\\n left: 180px;\\r\\n top: 20px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media only screen and (min-width: 1200px) and (max-width: 1350px) {\\r\\n .app-download .download-image {\\r\\n bottom: 180px;\\r\\n }\\r\\n .app-download .download-image img {\\r\\n left: 0;\\r\\n top: 0;\\r\\n width: 310px;\\r\\n }\\r\\n .app-download .download-image img:last-child {\\r\\n left: 200px;\\r\\n top: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media only screen and (min-width: 1351px) {\\r\\n .app-download {\\r\\n margin-bottom: 100px;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n@media only screen and (min-width: 1910px) {\\r\\n .app-download .download-image img {\\r\\n left: -75px;\\r\\n top: 0;\\r\\n width: 485px;\\r\\n }\\r\\n .app-download .download-image img:last-child {\\r\\n left: 280px;\\r\\n top: 0;\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n/* End App Download Section */\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvaG9tZS9jb21wb25lbnRzL2xhbmRpbmctcGFnZS9sYW5kaW5nLXBhZ2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHVCQUF1QjtBQUN6Qjs7O0FBR0E7RUFDRSxrQkFBa0I7QUFDcEI7OztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOzs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6Qix3QkFBZ0I7RUFBaEIsZ0JBQWdCO0FBQ2xCOzs7QUFDQTtFQUNFLFlBQVk7RUFDWixvQkFBYTtFQUFiLGFBQWE7RUFDYix5QkFBbUI7VUFBbkIsbUJBQW1CO0VBQ25CLHdCQUF1QjtVQUF2Qix1QkFBdUI7QUFDekI7OztBQUVBO0VBQ0UsWUFBWTtFQUNaLDhDQUE4QztFQUM5Qyx5QkFBeUI7RUFDekIsWUFBWTtFQUNaLFdBQVc7QUFDYjs7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCw0QkFBNEI7RUFDNUIsNkJBQTZCO0FBQy9COzs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7O0FBRUE7RUFDRSxlQUFlO0FBQ2pCOzs7QUFFQTtFQUNFLGdDQUFnQztFQUNoQyxjQUFjO0FBQ2hCOzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsbUJBQW1CO0VBRW5CLDJDQUEyQztBQUM3Qzs7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLDRCQUE0QjtFQUM1Qiw0QkFBNEI7RUFDNUIsb0JBQWlCO0tBQWpCLGlCQUFpQjtBQUNuQjs7O0FBRUE7RUFDRSwyQ0FBMkM7RUFDM0MsbUJBQW1CO0VBQ25CLHdCQUF3QjtBQUMxQjs7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7OztBQUVBO0VBQ0UsZ0NBQWdDO0VBQ2hDLGNBQWM7RUFDZCxlQUFlO0FBQ2pCOzs7QUFFQTtFQUNFLGNBQWM7RUFDZCxZQUFZO0FBQ2Q7OztBQUVBO0VBQ0UsYUFBYTtFQUNiLGFBQWE7RUFDYixXQUFXO0VBRVgsMkNBQTJDO0FBQzdDOzs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLGNBQWM7RUFDZCxXQUFXO0FBQ2I7OztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7OztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOzs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixhQUFhO0VBQ2IsWUFBWTtBQUNkOzs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixZQUFZO0FBQ2Q7OztBQUVBO0VBQ0Usd0JBQXVCO1VBQXZCLHVCQUF1QjtFQUN2QixnQkFBZ0I7QUFDbEI7OztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOzs7QUFFQTtFQUNFO0lBQ0UsV0FBVztFQUNiO0FBQ0Y7OztBQUVBLHlCQUF5Qjs7O0FBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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UUFBUTtFQUNWO0VBQ0E7SUFDRSxVQUFVO0VBQ1o7RUFDQTtFQUNBOztBQUVGOzs7QUFFQTtFQUNFO0lBQ0Usa0JBQWtCO0lBQ2xCLFFBQVE7SUFDUixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLGtCQUFrQjtFQUNwQjtFQUNBO0lBQ0Usa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsWUFBWTtFQUNkO0FBQ0Y7OztBQUVBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7RUFDQTtJQUNFLFdBQVc7SUFDWCxNQUFNO0lBQ04sWUFBWTtFQUNkO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsU0FBUztFQUNYO0FBQ0Y7OztBQUVBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7RUFDQTtJQUNFLE9BQU87SUFDUCxNQUFNO0lBQ04sWUFBWTtFQUNkO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsTUFBTTtFQUNSO0FBQ0Y7OztBQUVBO0VBQ0U7SUFDRSxvQkFBb0I7RUFDdEI7QUFDRjs7O0FBRUE7RUFDRTtJQUNFLFdBQVc7SUFDWCxNQUFNO0lBQ04sWUFBWTtFQUNkO0VBQ0E7SUFDRSxXQUFXO0lBQ1gsTUFBTTtFQUNSO0FBQ0Y7OztBQUNBLDZCQUE2QiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2hvbWUvY29tcG9uZW50cy9sYW5kaW5nLXBhZ2UvbGFuZGluZy1wYWdlLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJodG1sIHtcclxuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcclxufVxyXG5cclxuXHJcbi5jZW50ZXJlZC1jb250ZW50IHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5uYXZpZ2F0aW9uLmJ0bi10aHJlZS5wcmV2IHtcclxuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbn1cclxuXHJcbi51cHBlci1uYXZiYXIge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM3OTU1OTk7XHJcbiAgcG9zaXRpb246IHN0aWNreTtcclxufVxyXG4uYXJyb3ctZGlyZWN0aW9ucyB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLnNlbmQtbWVzc2FnZS1idXR0b24ge1xyXG4gIGhlaWdodDogNDVweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDJweCAwIDAgcmdiYSgwLCAwLCAwLCAwLjMpO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM3ODU0OTk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uY291cnNlLWltYWdlIHtcclxuICBoZWlnaHQ6IDI3NHB4O1xyXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcclxufVxyXG5cclxuLm93bC1zdGFnZSB7XHJcbiAgbWFyZ2luOiAzMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5Db3Vyc2UgLmNvdXJzZS1wcm9maWxlIHtcclxuICBkaXNwbGF5OiBpbmxpbmU7XHJcbn1cclxuXHJcbi50aXRsZSB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICMyYjNkNGY7XHJcbn1cclxuXHJcbi5jb3Vyc2UtbWFpbi1jb250YWluZXIge1xyXG4gIC8qIHBhZGRpbmc6IDZweDsgKi9cclxuICBtYXJnaW46IDZweDtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG59XHJcblxyXG4uYmxvZy1pbWFnZSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWF4LWhlaWdodDogMTgwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgbWluLWhlaWdodDogMTgwcHg7XHJcbiAgZGlzcGxheTogaW5oZXJpdDtcclxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMHB4O1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHg7XHJcbiAgb2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbi5ibG9nLWJveCB7XHJcbiAgYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gIC8qIHRleHQtYWxpZ246IGNlbnRlcjsgKi9cclxufVxyXG5cclxuLmJsb2ctYm94IC5kYXRhIHtcclxuICBwYWRkaW5nOiAxNXB4OyBcclxufVxyXG5cclxuLmJsb2ctYm94IC50aXRsZSB7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICMyYjNkNGY7XHJcbiAgZm9udC1zaXplOiAxOHB4O1xyXG59XHJcblxyXG4uYmxvZy1leGNlcnB0IHtcclxuICBjb2xvcjogI2NhYzJjMjtcclxuICBwYWRkaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5xdW90ZS1tYWluLWNvbnRhaW5lciB7XHJcbiAgcGFkZGluZzogMzJweDtcclxuICBoZWlnaHQ6IDM4MHB4O1xyXG4gIG1hcmdpbjogNnB4O1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG59XHJcblxyXG4uc2VlLW1vcmUtY29udGFpbmVyIHtcclxuICBtYXJnaW4tdG9wOiA2OHB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmb250LXNpemU6IDIycHg7XHJcbiAgY29sb3I6ICM3ODU0OTk7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5zb2x1dGlvbiAuYmxvZy1kYXRlIHtcclxuICBjb2xvcjogIzI4ODBiYTtcclxufVxyXG5cclxuLmNvbnRhY3QtcGFnZSB7XHJcbiAgei1pbmRleDogOTk5OSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2VjdGlvbi10aXRsZSB7XHJcbiAgbWFyZ2luLXRvcDogNDBweDtcclxufVxyXG5cclxuLm5vdF9yYXRlZCB7XHJcbiAgcGFkZGluZy10b3A6IDE1cHg7XHJcbiAgY29sb3I6IHNpbHZlcjtcclxuICBoZWlnaHQ6IDQwcHg7XHJcbn1cclxuXHJcbi5uby1zaGFkb3cge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4uanVzdC1jZW50e1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IDM4cHg7XHJcbn1cclxuXHJcbi5yYWRpdXMtNSB7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gIC5ibG9nLWltYWdlIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG5cclxuLyogU3RhcnQgU2xpZGVyIFN0eWxpbmcgKi9cclxuLyogQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xyXG4gIC5zdGFydHVwLWhvbWUgLm1haW4tYmFubmVyIC5zaGFwZTEsIC5zdGFydHVwLWhvbWUgLm1haW4tYmFubmVyIC5zaGFwZSwgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlNiwgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlMywgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlOSwgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlMiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAuc3RhcnR1cC1ob21lLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPW93bC1dIHtcclxuICAgIHRvcDogYXV0bztcclxuICAgIGJvdHRvbTogMTBweDtcclxuICB9XHJcbiAgLnN0YXJ0dXAtaG9tZS5vd2wtdGhlbWUgLm93bC1uYXYgW2NsYXNzKj1vd2wtXSB7XHJcbiAgICB0b3A6IGF1dG87XHJcbiAgICBib3R0b206IDEwcHg7XHJcbiAgfVxyXG4gIC5zY3JlZW5zaG90LWNvbnRhaW4gLm93bC1pdGVtLmFjdGl2ZS5jZW50ZXIgaW1nIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG4gIC5mZWVkYmFjay1zbGlkZXMgLm93bC1pdGVtLmFjdGl2ZS5jZW50ZXIgLnNpbmdsZS1mZWVkYmFjay1ib3gge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICB9XHJcbiAgLnNjcmVlbnNob3Qtc2xpZGVzLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAuMDE7XHJcbiAgfVxyXG4gIC5zY3JlZW5zaG90LXNsaWRlcy5vd2wtdGhlbWUgLm93bC1jb250cm9scyAub3dsLW5hdiB7XHJcbiAgICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLThweDtcclxuICB9XHJcbiAgLnRlYW0tc2xpZGVzLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAuMDE7XHJcbiAgfVxyXG4gIC50ZWFtLXNsaWRlcy5vd2wtdGhlbWUgLm93bC1jb250cm9scyAub3dsLW5hdiB7XHJcbiAgICBtYXJnaW4tdG9wOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjJweDtcclxuICB9XHJcbiAgLmZlZWRiYWNrLXNsaWRlcy5vd2wtdGhlbWUgLm93bC1jb250cm9scyB7XHJcbiAgICBsaW5lLWhlaWdodDogLjAxO1xyXG4gIH1cclxuICAuZmVlZGJhY2stc2xpZGVzLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIC5vd2wtbmF2IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtOHB4O1xyXG4gIH1cclxuICAuYmxvZy1zbGlkZXMub3dsLXRoZW1lIC5vd2wtY29udHJvbHMge1xyXG4gICAgbGluZS1oZWlnaHQ6IC4wMTtcclxuICB9XHJcbiAgLmJsb2ctc2xpZGVzLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIC5vd2wtbmF2IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtOHB4O1xyXG4gIH1cclxuICAucHJvamVjdC1zbGlkZXMub3dsLXRoZW1lIC5vd2wtY29udHJvbHMge1xyXG4gICAgbGluZS1oZWlnaHQ6IC4wMTtcclxuICB9XHJcbiAgLnByb2plY3Qtc2xpZGVzLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIC5vd2wtbmF2IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtOHB4O1xyXG4gIH1cclxuICAucHJvZHVjdC1zbGlkZXMub3dsLXRoZW1lIC5vd2wtY29udHJvbHMge1xyXG4gICAgbGluZS1oZWlnaHQ6IC4wMTtcclxuICB9XHJcbiAgLnByb2R1Y3Qtc2xpZGVzLm93bC10aGVtZSAub3dsLWNvbnRyb2xzIC5vd2wtbmF2IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtOHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgcGFkZGluZy10b3A6IDE0MHB4O1xyXG4gICAgcGFkZGluZy1ib3R0b206IDkwcHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCBoMSB7XHJcbiAgICBmb250LXNpemU6IDM0cHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IHAge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC52aWRlby1idG4ge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgLnZpZGVvLWJ0biBpIHtcclxuICAgIGZvbnQtc2l6ZTogMjNweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0ge1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCBmb3JtIC5idG4ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi10b3A6IDEzcHg7XHJcbiAgICBwYWRkaW5nOiAxNnB4IDA7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50LnBsLTQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuYXBwLWltYWdlIHtcclxuICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuYXBwLWltYWdlIGltZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsZWZ0OiAtMTBweDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAxODVweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5hcHAtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiA1MHB4O1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBsZWZ0OiBhdXRvO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnNpZ251cC1kb3dubG9hZCB7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgbWFyZ2luOiAzNXB4IDAgMCAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnNhYXMtaW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLnNhYXMtaG9tZSAuc2hhcGUxLCAubWFpbi1iYW5uZXIuc2Fhcy1ob21lIC5zaGFwZTMge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLnNhYXMtaG9tZSAuc2hhcGUzIHtcclxuICAgIGJvdHRvbTogMTBweDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuc2Fhcy1ob21lIC5zaGFwZS0xIHtcclxuICAgIG9wYWNpdHk6IC4yO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnByb2R1Y3QtaW1hZ2Uge1xyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5wcm9kdWN0LWltYWdlIGltZyB7XHJcbiAgICB3aWR0aDogMTY1cHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAucHJvZHVjdC1pbWFnZSBpbWc6bnRoLWNoaWxkKDIpIHtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnByb2R1Y3QtaW1hZ2UgLm9mZmVyLWJhZGdlIHtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6IDgwcHg7XHJcbiAgICBoZWlnaHQ6IDgwcHg7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMThweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLnByb2R1Y3QtaG9tZSAuc2hhcGUxLCAubWFpbi1iYW5uZXIucHJvZHVjdC1ob21lIC5zaGFwZTQsIC5tYWluLWJhbm5lci5wcm9kdWN0LWhvbWUgLnNoYXBlNiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIucHJvZHVjdC1ob21lIC5zaGFwZTMge1xyXG4gICAgYm90dG9tOiAxMHB4O1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5wcm9kdWN0LWhvbWUgLnNoYXBlLTEge1xyXG4gICAgb3BhY2l0eTogLjI7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5hcHAtaG9tZSAuc2hhcGU0IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5hcHAtaG9tZSAuc2hhcGUxIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5hcHAtaG9tZSAuc2hhcGUzIHtcclxuICAgIGJvdHRvbTogMTBweDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZiB1cmwoLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9iZy1wb2ludC5wbmcpIG5vLXJlcGVhdCBmaXhlZCByaWdodCAtNzAwcHggY2VudGVyL2F1dG87XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuc2hhcGU0LCAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLnNoYXBlMiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLnNoYXBlMSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLnNoYXBlMyB7XHJcbiAgICBib3R0b206IDEwcHg7XHJcbiAgICByaWdodDogMDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2Uge1xyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAubWFya2V0aW5nLWltYWdlIGltZzpsYXN0LWNoaWxkIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLmJ1YmJsZS1hbmltYXRlLCAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLnNoYXBlNiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuc29mdHdhcmUtaG9tZSAuc2hhcGU0LCAubWFpbi1iYW5uZXIuc29mdHdhcmUtaG9tZSAuc2hhcGUyLCAubWFpbi1iYW5uZXIuc29mdHdhcmUtaG9tZSAuc2hhcGUxLCAubWFpbi1iYW5uZXIuc29mdHdhcmUtaG9tZSAuc2hhcGU2IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5zb2Z0d2FyZS1ob21lIC5zaGFwZTMge1xyXG4gICAgYm90dG9tOiAxMHB4O1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5zb2Z0d2FyZS1ob21lIC5oZXJvLWNvbnRlbnQgLnZpZGVvLWJ0biB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuYm9vay1ob21lIC5ib29rLWltYWdlIHtcclxuICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5ib29rLWhvbWUgLmJvb2staW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuYm9vay1ob21lIC5zaGFwZTksIC5tYWluLWJhbm5lci5ib29rLWhvbWUgLnNoYXBlMiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuYm9vay1ob21lIC5oZXJvLWNvbnRlbnQgc3BhbiB7XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIucGF5bWVudC1wcm9jZXNzaW5nLWhvbWUgLnNoYXBlOSwgLm1haW4tYmFubmVyLnBheW1lbnQtcHJvY2Vzc2luZy1ob21lIC5zaGFwZTEsIC5tYWluLWJhbm5lci5wYXltZW50LXByb2Nlc3NpbmctaG9tZSAuc2hhcGUzLCAubWFpbi1iYW5uZXIucGF5bWVudC1wcm9jZXNzaW5nLWhvbWUgLnNoYXBlNiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnBheW1hbnQtcHJvY2Vzc2luZy1pbWFnZSB7XHJcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnBheW1hbnQtcHJvY2Vzc2luZy1pbWFnZSBpbWcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5wYXltYW50LXByb2Nlc3NpbmctaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSB7XHJcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlMSwgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlLCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGU2LCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGUzLCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGU5LCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGUyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcclxuICAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGU2LCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGUyLCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGUzLCAuc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciAuc2hhcGU5IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG5cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2Uge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0NXB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCBoMSB7XHJcbiAgICBmb250LXNpemU6IDUwcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50LnBsLTQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwYWRkaW5nLXRvcDogMTcwcHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTUwcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDQ1cHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGgxIHtcclxuICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQucGwtNCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5zaWdudXAtZG93bmxvYWQge1xyXG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5zYWFzLWhvbWUgLmNvbC1sZy02OmZpcnN0LWNoaWxkIHtcclxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDM7XHJcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDI7XHJcbiAgICAgICAgICAgIG9yZGVyOiAyO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuc2Fhcy1ob21lIC5jb2wtbGctNjpsYXN0LWNoaWxkIHtcclxuICAgIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDI7XHJcbiAgICAgICAgLW1zLWZsZXgtb3JkZXI6IDE7XHJcbiAgICAgICAgICAgIG9yZGVyOiAxO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIuc2Fhcy1ob21lIC5zYWFzLWltYWdlIHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLnNhYXMtaG9tZSAuc2Fhcy1pbWFnZSBpbWcge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLnNhYXMtaG9tZSAuc2Fhcy1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmFwcC1pbWFnZSBpbWcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5hcHAtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIHRvcDogMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGxlZnQ6IDQ1cHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAucHJvZHVjdC1pbWFnZSBpbWc6bnRoLWNoaWxkKDIpIHtcclxuICAgIGxlZnQ6IGF1dG87XHJcbiAgICByaWdodDogMjBweDtcclxuICAgIGJvdHRvbTogMDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5wcm9kdWN0LWltYWdlIC5vZmZlci1iYWRnZSB7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLmJvb2staG9tZSAuYm9vay1pbWFnZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5ib29rLWhvbWUgLmJvb2staW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnBheW1hbnQtcHJvY2Vzc2luZy1pbWFnZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnBheW1hbnQtcHJvY2Vzc2luZy1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2Uge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLnNoYXBlMywgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5zaGFwZTEge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2Uge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWcge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBtYXJnaW46IDAgYXV0bztcclxuICB9XHJcbiAgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlNiwgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlMiwgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlMywgLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIgLnNoYXBlOSB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xyXG4gIC5zY3JlZW5zaG90LXNsaWRlcy5vd2wtdGhlbWUgLm93bC1uYXYge1xyXG4gICAgbWFyZ2luLXRvcDogMzBweDtcclxuICB9XHJcblxyXG4gIC5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDUpIHtcclxuICAgIGxlZnQ6IDU1cHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50LnBsLTQge1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGgxIHtcclxuICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHBhZGRpbmctdG9wOiAxOTVweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNjBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQucGwtNCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgaDEge1xyXG4gICAgZm9udC1zaXplOiA1MHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCg1KSB7XHJcbiAgICBsZWZ0OiA1NXB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmFwcC1pbWFnZSBpbWcge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMTVweDtcclxuICAgIHdpZHRoOiAyODBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5hcHAtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgbGVmdDogMjAwcHg7XHJcbiAgICB0b3A6IDIwcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuc2hhcGUxIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAubWFya2V0aW5nLWltYWdlIGltZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLmJvb2staG9tZSAuYm9vay1pbWFnZSBpbWcge1xyXG4gICAgYm90dG9tOiAtMTU1cHg7XHJcbiAgICByaWdodDogNDVweDtcclxuICAgIHdpZHRoOiAzNTBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5zaGFwZTQsIC5tYWluLWJhbm5lciAuc2hhcGUxIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuc2hhcGU2IHtcclxuICAgIG9wYWNpdHk6IC4zO1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMzUwcHgpIHtcclxuICAubWFpbi1iYW5uZXIgLmFwcC1pbWFnZSBpbWcge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMzVweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5hcHAtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgbGVmdDogMjM1cHg7XHJcbiAgICB0b3A6IDVweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5wYXltYW50LXByb2Nlc3NpbmctaW1hZ2Uge1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICB0b3A6IDQwcHg7XHJcbiAgICB3aWR0aDogNTg1cHg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MTBweCkge1xyXG4gIC5tYWluLWJhbm5lciB7XHJcbiAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmFwcC1pbWFnZSBpbWcge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogLTQwcHg7XHJcbiAgICB3aWR0aDogOTUlO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmFwcC1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBsZWZ0OiAzODBweDtcclxuICAgIHRvcDogLTIwcHg7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAucHJvZHVjdC1pbWFnZSBpbWcge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAucHJvZHVjdC1pbWFnZSBpbWc6bnRoLWNoaWxkKDIpIHtcclxuICAgIHJpZ2h0OiAtMTQ1cHg7XHJcbiAgICBib3R0b206IC02MHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmJvb2staW1hZ2UgaW1nIHtcclxuICAgIGJvdHRvbTogLTI4MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnNoYXBlNCB7XHJcbiAgICBsZWZ0OiAyMCU7XHJcbiAgICB0b3A6IDIzJTtcclxuICB9XHJcbiAgLmFwcC1kb3dubG9hZCAuZG93bmxvYWQtaW1hZ2UgaW1nIHtcclxuICAgIGxlZnQ6IC03NXB4O1xyXG4gICAgdG9wOiAwO1xyXG4gICAgd2lkdGg6IDQ4NXB4O1xyXG4gIH1cclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgICBsZWZ0OiAyODBweDtcclxuICAgIHRvcDogMDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2Uge1xyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGgxIHtcclxuICAgIGZvbnQtc2l6ZTogMzRweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgcCB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgLnZpZGVvLWJ0biB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xyXG4gIH1cclxuICAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAudmlkZW8tYnRuIGkge1xyXG4gICAgZm9udC1zaXplOiAyM3B4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDNweDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSB7XHJcbiAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0gLmJ0biB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luLXRvcDogMTNweDtcclxuICAgIHBhZGRpbmc6IDE2cHggMDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQucGwtNCB7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuICB9XHJcbiAgLm1haW4tYmFubmVyLnNvZnR3YXJlLWhvbWUgLmhlcm8tY29udGVudCAudmlkZW8tYnRuIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgfVxyXG4gIC5tYWluLWJhbm5lci5ib29rLWhvbWUgLmhlcm8tY29udGVudCBzcGFuIHtcclxuICAgIGZvbnQtc2l6ZTogMTVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uc3RhcnR1cC1ob21lIC5tYWluLWJhbm5lciB7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5cclxuLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXI6OmJlZm9yZSB7XHJcbiAgY29udGVudDogJyc7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAwO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxuICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIG9wYWNpdHk6IC45NTtcclxufVxyXG5cclxuLnN0YXJ0dXAtaG9tZSAuc3RhcnR1cC1iZzEge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi8uLi8uLi8uLi9hc3NldHMvaW1nL21haW4tYmctMS5qcGcpO1xyXG59XHJcblxyXG4uc3RhcnR1cC1ob21lIC5zdGFydHVwLWJnMiB7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uLy4uLy4uLy4uL2Fzc2V0cy9pbWcvbWFpbi1iZy0yLmpwZyk7XHJcbn1cclxuXHJcbi5zdGFydHVwLWhvbWUgLnN0YXJ0dXAtYmczIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9tYWluLWJnLTMuanBnKTtcclxufVxyXG5cclxuLnN0YXJ0dXAtaG9tZS5vd2wtdGhlbWUgLm93bC1uYXYge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbn1cclxuXHJcbi5zdGFydHVwLWhvbWUub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV0ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxMHB4O1xyXG4gIHRvcDogNTAlO1xyXG4gIG1hcmdpbjogMDtcclxuICB3aWR0aDogNDVweDtcclxuICBoZWlnaHQ6IDQ1cHg7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xyXG4gIGxpbmUtaGVpZ2h0OiA0MnB4O1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgbWFyZ2luLXRvcDogLTI1cHg7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XHJcbiAgdHJhbnNpdGlvbjogLjRzO1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG59XHJcblxyXG4uc3RhcnR1cC1ob21lLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPW93bC1dLm93bC1uZXh0IHtcclxuICBsZWZ0OiBhdXRvO1xyXG4gIHJpZ2h0OiAxMHB4O1xyXG59XHJcblxyXG4uc3RhcnR1cC1ob21lLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPW93bC1dOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjMTNjNGExO1xyXG59XHJcblxyXG4uc3RhcnR1cC1ob21lLm93bC10aGVtZSAub3dsLW5hdiB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxufVxyXG5cclxuLnN0YXJ0dXAtaG9tZS5vd2wtdGhlbWUgLm93bC1uYXYgW2NsYXNzKj1vd2wtXSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGxlZnQ6IDEwcHg7XHJcbiAgdG9wOiA1MCU7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIHdpZHRoOiA0NXB4O1xyXG4gIGhlaWdodDogNDVweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgbGluZS1oZWlnaHQ6IDQycHg7XHJcbiAgZm9udC1zaXplOiAzMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBtYXJnaW4tdG9wOiAtMjVweDtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICB0cmFuc2l0aW9uOiAuNHM7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5zdGFydHVwLWhvbWUub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV0ub3dsLW5leHQge1xyXG4gIGxlZnQ6IGF1dG87XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5zdGFydHVwLWhvbWUub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV06aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICMxM2M0YTE7XHJcbn1cclxuICBcclxuLnByb2plY3QtYXJlYSAub3dsLXRoZW1lIC5vd2wtbmF2IHtcclxuICBtYXJnaW4tdG9wOiAxNXB4O1xyXG4gIGxpbmUtaGVpZ2h0OiAuMDE7XHJcbiAgbWFyZ2luLWJvdHRvbTogLThweDtcclxufVxyXG5cclxuLnByb2plY3QtYXJlYSAub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV0ge1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBtYXJnaW46IDAgM3B4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xyXG4gIHRyYW5zaXRpb246IC40cztcclxufVxyXG5cclxuLnByb2plY3QtYXJlYSAub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV06aG92ZXIge1xyXG4gIGNvbG9yOiAjMTNjNGExO1xyXG59XHJcblxyXG4ucHJvamVjdC1hcmVhIC5vd2wtdGhlbWUgLm93bC1jb250cm9scyB7XHJcbiAgbGluZS1oZWlnaHQ6IC4xO1xyXG59XHJcblxyXG4uc2NyZWVuc2hvdC1zbGlkZXMub3dsLXRoZW1lIC5vd2wtbmF2IHtcclxuICBtYXJnaW4tdG9wOiAxMzVweDtcclxufVxyXG5cclxuLnNjcmVlbnNob3Qtc2xpZGVzLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPW93bC1dIHtcclxuICBjb2xvcjogI0ZGOEE3MztcclxuICBmb250LXNpemU6IDMwcHg7XHJcbiAgbWFyZ2luOiAwIDNweDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICB0cmFuc2l0aW9uOiAuNHM7XHJcbn1cclxuXHJcbi5zY3JlZW5zaG90LXNsaWRlcy5vd2wtdGhlbWUgLm93bC1uYXYgW2NsYXNzKj1vd2wtXTpob3ZlciB7XHJcbiAgY29sb3I6ICMxM2M0YTE7XHJcbn1cclxuXHJcbi5zY3JlZW5zaG90LXNsaWRlcy5vd2wtdGhlbWUgLm93bC1jb250cm9scyB7XHJcbiAgbGluZS1oZWlnaHQ6IC4xO1xyXG59XHJcblxyXG4ucGFnZS1mcm9tLWJvb2sgLm93bC10aGVtZSAub3dsLW5hdiB7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxufVxyXG5cclxuLnRlYW0tc2xpZGVzLm93bC10aGVtZSAub3dsLW5hdiB7XHJcbiAgbGluZS1oZWlnaHQ6IC4wMTtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDIycHg7XHJcbn1cclxuXHJcbi50ZWFtLXNsaWRlcy5vd2wtdGhlbWUgLm93bC1uYXYgW2NsYXNzKj1vd2wtXSB7XHJcbiAgY29sb3I6ICNGRjhBNzM7XHJcbiAgZm9udC1zaXplOiAzMHB4O1xyXG4gIG1hcmdpbjogMCAzcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XHJcbiAgdHJhbnNpdGlvbjogLjRzO1xyXG59XHJcblxyXG4udGVhbS1zbGlkZXMub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV06aG92ZXIge1xyXG4gIGNvbG9yOiAjMTNjNGExO1xyXG59XHJcblxyXG4udGVhbS1zbGlkZXMub3dsLXRoZW1lIC5vd2wtY29udHJvbHMge1xyXG4gIGxpbmUtaGVpZ2h0OiAuMTtcclxufVxyXG5cclxuLmZlZWRiYWNrLXNsaWRlcyAub3dsLWl0ZW0gLnNpbmdsZS1mZWVkYmFjayB7XHJcbiAgb3BhY2l0eTogLjU7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNXM7XHJcbiAgdHJhbnNpdGlvbjogLjVzO1xyXG59XHJcblxyXG4uZmVlZGJhY2stc2xpZGVzIC5vd2wtaXRlbSAuc2luZ2xlLWZlZWRiYWNrOjpiZWZvcmUge1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG59XHJcblxyXG4uZmVlZGJhY2stc2xpZGVzIC5vd2wtaXRlbS5hY3RpdmUuY2VudGVyIC5zaW5nbGUtZmVlZGJhY2sge1xyXG4gIG9wYWNpdHk6IDE7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNXM7XHJcbiAgdHJhbnNpdGlvbjogLjVzO1xyXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDEuMjVyZW0gcmdiYSgxMDgsIDExOCwgMTM0LCAwLjEpO1xyXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDEuMjVyZW0gcmdiYSgxMDgsIDExOCwgMTM0LCAwLjEpO1xyXG59XHJcblxyXG4uZmVlZGJhY2stc2xpZGVzIC5vd2wtaXRlbS5hY3RpdmUuY2VudGVyIC5zaW5nbGUtZmVlZGJhY2s6OmJlZm9yZSB7XHJcbiAgb3BhY2l0eTogMTtcclxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4uZmVlZGJhY2stc2xpZGVzIC5vd2wtaXRlbS5hY3RpdmUuY2VudGVyIC5zaW5nbGUtZmVlZGJhY2stYm94IHtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG59XHJcblxyXG4uZmVlZGJhY2stc2xpZGVzLm93bC10aGVtZSAub3dsLW5hdiB7XHJcbiAgbGluZS1oZWlnaHQ6IC4wMTtcclxuICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IC04cHg7XHJcbn1cclxuXHJcbi5mZWVkYmFjay1zbGlkZXMub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV0ge1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBtYXJnaW46IDAgM3B4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xyXG4gIHRyYW5zaXRpb246IC40cztcclxufVxyXG5cclxuLmZlZWRiYWNrLXNsaWRlcy5vd2wtdGhlbWUgLm93bC1uYXYgW2NsYXNzKj1vd2wtXTpob3ZlciB7XHJcbiAgY29sb3I6ICMxM2M0YTE7XHJcbn1cclxuXHJcbi5mZWVkYmFjay1zbGlkZXMub3dsLXRoZW1lIC5vd2wtY29udHJvbHMge1xyXG4gIGxpbmUtaGVpZ2h0OiAuMTtcclxufVxyXG5cclxuLmJsb2ctYXJlYSAub3dsLXRoZW1lIC5vd2wtbmF2IHtcclxuICBtYXJnaW4tdG9wOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IC04cHg7XHJcbiAgbGluZS1oZWlnaHQ6IC4wMTtcclxufVxyXG5cclxuLmJsb2ctYXJlYSAub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV0ge1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBtYXJnaW46IDAgM3B4O1xyXG4gIHBhZGRpbmc6IDA7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXItcmFkaXVzOiAwO1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xyXG4gIHRyYW5zaXRpb246IC40cztcclxufVxyXG5cclxuLmJsb2ctYXJlYSAub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV06aG92ZXIge1xyXG4gIGNvbG9yOiAjMTNjNGExO1xyXG59XHJcblxyXG4uYmxvZy1hcmVhIC5vd2wtdGhlbWUgLm93bC1jb250cm9scyB7XHJcbiAgbGluZS1oZWlnaHQ6IC4xO1xyXG59XHJcblxyXG4ucGFydG5lci1hcmVhIC5vd2wtY29udHJvbHMgLm93bC1uYXYge1xyXG4gIG1hcmdpbi10b3A6IDA7XHJcbn1cclxuXHJcbi5wcm9kdWN0LXNsaWRlcy5vd2wtdGhlbWUgLm93bC1uYXYge1xyXG4gIG1hcmdpbi10b3A6IDIwcHg7XHJcbn1cclxuXHJcbi5wcm9kdWN0LXNsaWRlcy5vd2wtdGhlbWUgLm93bC1uYXYgW2NsYXNzKj1vd2wtXSB7XHJcbiAgY29sb3I6ICNGRjhBNzM7XHJcbiAgZm9udC1zaXplOiAzMHB4O1xyXG4gIG1hcmdpbjogMCAzcHg7XHJcbiAgcGFkZGluZzogMDtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAuNHM7XHJcbiAgdHJhbnNpdGlvbjogLjRzO1xyXG59XHJcblxyXG4ucHJvZHVjdC1zbGlkZXMub3dsLXRoZW1lIC5vd2wtbmF2IFtjbGFzcyo9b3dsLV06aG92ZXIge1xyXG4gIGNvbG9yOiAjMTNjNGExO1xyXG59XHJcblxyXG4ucHJvZHVjdC1zbGlkZXMub3dsLXRoZW1lIC5vd2wtY29udHJvbHMge1xyXG4gIGxpbmUtaGVpZ2h0OiAuMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWcge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB3aWR0aDogdW5zZXQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZzpudGgtY2hpbGQoMSkge1xyXG4gIHRvcDogNDVweDtcclxuICByaWdodDogMjMlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCgyKSB7XHJcbiAgbGVmdDogMjBweDtcclxuICB0b3A6IC0zNXB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCgzKSB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiA2NXB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCg0KSB7XHJcbiAgbGVmdDogODVweDtcclxuICB0b3A6IDA7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDUpIHtcclxuICBsZWZ0OiAxMTBweDtcclxuICB0b3A6IDEzMnB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCg2KSB7XHJcbiAgcmlnaHQ6IDglO1xyXG4gIHRvcDogMTMxcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDcpIHtcclxuICByaWdodDogMjAlO1xyXG4gIHRvcDogLTMwcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDgpIHtcclxuICByaWdodDogMzglO1xyXG4gIHRvcDogNjRweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZzpudGgtY2hpbGQoOSkge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogLTE1cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDEwKSB7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDI0NXB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5zaGFwZS0xIHtcclxuICBsZWZ0OiAyMHB4O1xyXG4gIGJvdHRvbTogMTBweDtcclxuICBoZWlnaHQ6IDE1MHB4O1xyXG4gIHdpZHRoOiAxNTBweDtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIG9wYWNpdHk6IC41O1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBtb3ZlYm91bmNlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogbW92ZWJvdW5jZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5zaGFwZTEge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDg1cHg7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgbGVmdDogMzBweDtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZWJvdW5jZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG1vdmVib3VuY2UgNXMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG4uc2hhcGUyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiA4NXB4O1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIHJpZ2h0OiAzMHB4O1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBtb3ZlYm91bmNlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogbW92ZWJvdW5jZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbn1cclxuXHJcbi5zaGFwZTMge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDg1cHg7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgcmlnaHQ6IDMwcHg7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IG1vdmVib3VuY2UgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlYm91bmNlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuLnNoYXBlNiB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHRvcDogMzAlO1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIGxlZnQ6IDMwcHg7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZTNkIDRzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlM2QgNHMgbGluZWFyIGluZmluaXRlO1xyXG4gIG9wYWNpdHk6IC42O1xyXG59XHJcblxyXG4uc2hhcGU4IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgdG9wOiA2MCU7XHJcbiAgbGVmdDogMTUlO1xyXG59XHJcblxyXG4uc2hhcGU5IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogNDUlO1xyXG4gIHRvcDogNDAlO1xyXG4gIHotaW5kZXg6IC0xO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBhbmltYXRpb25GcmFtZXNPbmUgMTVzIGluZmluaXRlIGxpbmVhcjtcclxuICAgICAgICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uRnJhbWVzT25lIDE1cyBpbmZpbml0ZSBsaW5lYXI7XHJcbn1cclxuXHJcbi5yb3RhdGVtZSB7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlbWU7XHJcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogcm90YXRlbWU7XHJcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDQwcztcclxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNDBzO1xyXG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcclxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcclxufVxyXG5cclxuQGtleWZyYW1lcyByb3RhdGVtZSB7XHJcbiAgZnJvbSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xyXG4gIH1cclxufVxyXG5cclxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZW1lIHtcclxuICBmcm9tIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYW5pbWF0aW9uRnJhbWVzT25lIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KSByb3RhdGUoMGRlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDBweCwgMHB4KSByb3RhdGUoMGRlZyk7XHJcbiAgfVxyXG4gIDIwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDczcHgsIC0xcHgpIHJvdGF0ZSgzNmRlZyk7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDczcHgsIC0xcHgpIHJvdGF0ZSgzNmRlZyk7XHJcbiAgfVxyXG4gIDQwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDE0MXB4LCA3MnB4KSByb3RhdGUoNzJkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxNDFweCwgNzJweCkgcm90YXRlKDcyZGVnKTtcclxuICB9XHJcbiAgNjAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoODNweCwgMTIycHgpIHJvdGF0ZSgxMDhkZWcpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg4M3B4LCAxMjJweCkgcm90YXRlKDEwOGRlZyk7XHJcbiAgfVxyXG4gIDgwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC00MHB4LCA3MnB4KSByb3RhdGUoMTQ0ZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTQwcHgsIDcycHgpIHJvdGF0ZSgxNDRkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpIHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpIHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBhbmltYXRpb25GcmFtZXNPbmUge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpIHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbiAgMjAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNzNweCwgLTFweCkgcm90YXRlKDM2ZGVnKTtcclxuICB9XHJcbiAgNDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTQxcHgsIDcycHgpIHJvdGF0ZSg3MmRlZyk7XHJcbiAgfVxyXG4gIDYwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDgzcHgsIDEyMnB4KSByb3RhdGUoMTA4ZGVnKTtcclxuICB9XHJcbiAgODAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTQwcHgsIDcycHgpIHJvdGF0ZSgxNDRkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAwcHgpIHJvdGF0ZSgwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkAtd2Via2l0LWtleWZyYW1lcyBtb3ZlYm91bmNlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XHJcbiAgfVxyXG59XHJcblxyXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlM2Qge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDM2MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMzYwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgcm90YXRlM2Qge1xyXG4gIDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xyXG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDBkZWcpO1xyXG4gIH1cclxuICAxMDAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVZKDM2MGRlZyk7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoMzYwZGVnKTtcclxuICB9XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGgxIHtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBmb250LXNpemU6IDYwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IHAge1xyXG4gIGNvbG9yOiAjZjJmMmYyO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG46aG92ZXI6OmFmdGVyLCAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAuYnRuOmhvdmVyOjpiZWZvcmUge1xyXG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeSAuc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGUge1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpob3ZlciwgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5OmZvY3VzIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAudmlkZW8tYnRuIHtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAudmlkZW8tYnRuIGkge1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICB0b3A6IDRweDtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICB0cmFuc2l0aW9uOiAuNHM7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC52aWRlby1idG46aG92ZXIgaSB7XHJcbiAgY29sb3I6ICNGRjhBNzM7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0ge1xyXG4gIG1heC13aWR0aDogNTQwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCBmb3JtIC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogNzBweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgYmFja2dyb3VuZDogIzEzYzRhMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSAuZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSAuZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0gLmZvcm0tY29udHJvbDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSAuZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0gLmJ0biB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IGgxIHtcclxuICBjb2xvcjogIzAwMDAwMDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgcCB7XHJcbiAgY29sb3I6ICM4MTg5OTI7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC52aWRlby1idG4ge1xyXG4gIGNvbG9yOiAjNzE2YzgwO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLmhlcm8tY29udGVudCAudmlkZW8tYnRuOmhvdmVyIGksIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC52aWRlby1idG46Zm9jdXMgaSB7XHJcbiAgY29sb3I6ICMxM2M0YTE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC5idG46aG92ZXI6OmFmdGVyLCAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLmhlcm8tY29udGVudCAuYnRuOmhvdmVyOjpiZWZvcmUge1xyXG4gIGJhY2tncm91bmQ6ICMxM2M0YTE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeSAuc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGUge1xyXG4gIGJhY2tncm91bmQ6ICMxM2M0YTE7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpob3ZlciwgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5OmZvY3VzIHtcclxuICBiYWNrZ3JvdW5kOiAjMTNjNGExO1xyXG4gIGNvbG9yOiAjZmZmZmZmO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIuYm9vay1ob21lIC5oZXJvLWNvbnRlbnQgc3BhbiB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZmZmZmO1xyXG4gIHBhZGRpbmctbGVmdDogMTBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLmJvb2staG9tZSAuaGVyby1jb250ZW50IGVtLmlubHVjZGVib29rcyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgY29sb3I6ICNmMmYyZjI7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLmQtdGFibGUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogMTAwJTtcclxufVxyXG5cclxuLmQtdGFibGUtY2VsbCB7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIHtcclxuICBoZWlnaHQ6IDg0MHB4O1xyXG4gIGJhY2tncm91bmQ6ICMxM2M0YTE7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGgxIHtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBmb250LXNpemU6IDYwcHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IHAge1xyXG4gIGNvbG9yOiAjZjJmMmYyO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBtYXJnaW4tdG9wOiAzMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG46aG92ZXI6OmFmdGVyLCAubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAuYnRuOmhvdmVyOjpiZWZvcmUge1xyXG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsIC5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeSAuc2hvdyA+IC5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGUge1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC5idG4tcHJpbWFyeTpob3ZlciwgLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5OmZvY3VzIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gIGNvbG9yOiAjRkY4QTczO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAudmlkZW8tYnRuIHtcclxuICBtYXJnaW4tbGVmdDogMTVweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCAudmlkZW8tYnRuIGkge1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICB0b3A6IDRweDtcclxuICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcclxuICB0cmFuc2l0aW9uOiAuNHM7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IC52aWRlby1idG46aG92ZXIgaSB7XHJcbiAgY29sb3I6ICNGRjhBNzM7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0ge1xyXG4gIG1heC13aWR0aDogNTQwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmhlcm8tY29udGVudCBmb3JtIC5mb3JtLWNvbnRyb2wge1xyXG4gIGhlaWdodDogNzBweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwcHggMjBweCA0MHB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XHJcbiAgYmFja2dyb3VuZDogIzEzYzRhMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSAuZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSAuZm9ybS1jb250cm9sOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0gLmZvcm0tY29udHJvbDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5oZXJvLWNvbnRlbnQgZm9ybSAuZm9ybS1jb250cm9sOjpwbGFjZWhvbGRlciB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuaGVyby1jb250ZW50IGZvcm0gLmJ0biB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMDtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2lnbnVwLWRvd25sb2FkIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gIHBhZGRpbmc6IDMwcHggNDBweDtcclxuICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnNpZ251cC1kb3dubG9hZDo6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcclxuICB3aWR0aDogOTYlO1xyXG4gIG9wYWNpdHk6IC42MjtcclxuICBoZWlnaHQ6IDUwJTtcclxuICBib3R0b206IC02cHg7XHJcbiAgbGVmdDogMDtcclxuICByaWdodDogMDtcclxuICBtYXJnaW46IGF1dG87XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xyXG4gIHRyYW5zaXRpb246IC40cztcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zaWdudXAtZG93bmxvYWQgZm9ybSAuZm9ybS1ncm91cCB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zaWdudXAtZG93bmxvYWQgZm9ybSAuZm9ybS1ncm91cCBsYWJlbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxN3B4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnNpZ251cC1kb3dubG9hZCBmb3JtIC5idG4ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLmFwcC1pbWFnZSBpbWcge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogLTQwcHg7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IG1vdmVib3VuY2UgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlYm91bmNlIDVzIGxpbmVhciBpbmZpbml0ZTtcclxuICB3aWR0aDogNDAwcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuYXBwLWltYWdlIGltZzpsYXN0LWNoaWxkIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZWJvdW5jZSA2cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG1vdmVib3VuY2UgNnMgbGluZWFyIGluZmluaXRlO1xyXG4gIGxlZnQ6IDI3MHB4O1xyXG4gIHRvcDogLTIwcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucHJvZHVjdC1pbWFnZSB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnByb2R1Y3QtaW1hZ2UgaW1nIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZWJvdW5jZSA2cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG1vdmVib3VuY2UgNnMgbGluZWFyIGluZmluaXRlO1xyXG4gIHdpZHRoOiAzMDBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5wcm9kdWN0LWltYWdlIGltZzpudGgtY2hpbGQoMikge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICByaWdodDogLTQ1cHg7XHJcbiAgYm90dG9tOiAtNjBweDtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZWJvdW5jZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG1vdmVib3VuY2UgNXMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnByb2R1Y3QtaW1hZ2UgLm9mZmVyLWJhZGdlIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgcmlnaHQ6IDkwcHg7XHJcbiAgdG9wOiAzMHB4O1xyXG4gIHdpZHRoOiAxMDBweDtcclxuICBoZWlnaHQ6IDEwMHB4O1xyXG4gIGJhY2tncm91bmQ6ICNGRjhBNzM7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogcmlwcGxlLXdoaXRlIDFzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogcmlwcGxlLXdoaXRlIDFzIGxpbmVhciBpbmZpbml0ZTtcclxuICBmb250LXNpemU6IDE4cHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBwYWRkaW5nLXRvcDogMjVweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5wcm9kdWN0LWltYWdlIC5vZmZlci1iYWRnZSBzcGFuIHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zYWFzLWltYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWcge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zYWFzLWltYWdlIGltZzpudGgtY2hpbGQoMSkge1xyXG4gIHRvcDogLTIwMHB4O1xyXG4gIGxlZnQ6IDA7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bnRoLWNoaWxkKDIpIHtcclxuICBsZWZ0OiA1NXB4O1xyXG4gIHRvcDogLTEwMHB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnNhYXMtaW1hZ2UgaW1nOm50aC1jaGlsZCgzKSB7XHJcbiAgbGVmdDogMzYlO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgdG9wOiAtMTcwcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bnRoLWNoaWxkKDQpIHtcclxuICByaWdodDogMjclO1xyXG4gIHRvcDogMTEwcHg7XHJcbiAgei1pbmRleDogMjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zYWFzLWltYWdlIGltZzpudGgtY2hpbGQoNSkge1xyXG4gIHJpZ2h0OiAxNSU7XHJcbiAgdG9wOiA4MHB4O1xyXG4gIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bnRoLWNoaWxkKDYpIHtcclxuICByaWdodDogMjUlO1xyXG4gIHRvcDogLTE3MHB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnNhYXMtaW1hZ2UgaW1nOm50aC1jaGlsZCg3KSB7XHJcbiAgcmlnaHQ6IDQ3JTtcclxuICB0b3A6IDk2cHg7XHJcbiAgei1pbmRleDogMjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zYWFzLWltYWdlIGltZzpudGgtY2hpbGQoOCkge1xyXG4gIHJpZ2h0OiAyMiU7XHJcbiAgdG9wOiA0NXB4O1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bnRoLWNoaWxkKDkpIHtcclxuICByaWdodDogNzVweDtcclxuICB0b3A6IDIwcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bnRoLWNoaWxkKDEwKSB7XHJcbiAgbGVmdDogMzIlO1xyXG4gIHRvcDogLTc2cHg7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zYWFzLWltYWdlIGltZzpudGgtY2hpbGQoMTEpIHtcclxuICByaWdodDogNDAlO1xyXG4gIHRvcDogLTIwcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc2Fhcy1pbWFnZSBpbWc6bnRoLWNoaWxkKDEyKSB7XHJcbiAgdG9wOiAtMjkycHg7XHJcbiAgbGVmdDogNDVweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zYWFzLWltYWdlIGltZzpsYXN0LWNoaWxkIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2Uge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHdpZHRoOiB1bnNldCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCgxKSB7XHJcbiAgdG9wOiA0NXB4O1xyXG4gIHJpZ2h0OiAyMyU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDIpIHtcclxuICBsZWZ0OiAyMHB4O1xyXG4gIHRvcDogLTM1cHg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDMpIHtcclxuICByaWdodDogMDtcclxuICB0b3A6IDY1cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDQpIHtcclxuICBsZWZ0OiA4NXB4O1xyXG4gIHRvcDogMDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZzpudGgtY2hpbGQoNSkge1xyXG4gIGxlZnQ6IDExMHB4O1xyXG4gIHRvcDogMTMycHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bnRoLWNoaWxkKDYpIHtcclxuICByaWdodDogOCU7XHJcbiAgdG9wOiAxMzFweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZzpudGgtY2hpbGQoNykge1xyXG4gIHJpZ2h0OiAyMCU7XHJcbiAgdG9wOiAtMzBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZzpudGgtY2hpbGQoOCkge1xyXG4gIHJpZ2h0OiAzOCU7XHJcbiAgdG9wOiA2NHB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnN0YXJ0dXAtaW1hZ2UgaW1nOm50aC1jaGlsZCg5KSB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAtMTVweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5zdGFydHVwLWltYWdlIGltZzpudGgtY2hpbGQoMTApIHtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMjQ1cHg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAuc3RhcnR1cC1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5wYXltYW50LXByb2Nlc3NpbmctaW1hZ2Uge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5wYXltYW50LXByb2Nlc3NpbmctaW1hZ2UgaW1nIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZzpudGgtY2hpbGQoMSkge1xyXG4gIHRvcDogMTM1cHg7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgbGVmdDogMzBweDtcclxuICBtYXJnaW46IDAgYXV0bztcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5wYXltYW50LXByb2Nlc3NpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCgyKSB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAyNXB4O1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZzpudGgtY2hpbGQoMykge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogMjc1cHg7XHJcbiAgbGVmdDogNjUlO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZzpudGgtY2hpbGQoNCkge1xyXG4gIHRvcDogMTcwcHg7XHJcbiAgei1pbmRleDogMTtcclxuICBsZWZ0OiAyMHB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnBheW1hbnQtcHJvY2Vzc2luZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDUpIHtcclxuICBsZWZ0OiAxMTVweDtcclxuICB0b3A6IDI0MHB4O1xyXG4gIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZzpudGgtY2hpbGQoNikge1xyXG4gIHJpZ2h0OiAwO1xyXG4gIHRvcDogLTc1cHg7XHJcbiAgbGVmdDogOXB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIgLnBheW1hbnQtcHJvY2Vzc2luZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDcpIHtcclxuICByaWdodDogMDtcclxuICB0b3A6IDIzcHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZzpudGgtY2hpbGQoOCkge1xyXG4gIGxlZnQ6IDA7XHJcbiAgdG9wOiAtNDVweDtcclxuICB6LWluZGV4OiAtMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyIC5wYXltYW50LXByb2Nlc3NpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCg5KSB7XHJcbiAgcmlnaHQ6IDIxJTtcclxuICB0b3A6IDE2cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lciAucGF5bWFudC1wcm9jZXNzaW5nLWltYWdlIGltZzpsYXN0LWNoaWxkIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUge1xyXG4gIGJhY2tncm91bmQ6ICNmZmZmZmYgdXJsKFwiLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9iZy1wb2ludC5wbmdcIikgbm8tcmVwZWF0IGZpeGVkIHJpZ2h0IC01MDBweCBjZW50ZXIvYXV0bztcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgaDEge1xyXG4gIGNvbG9yOiAjMDAwMDAwO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLmhlcm8tY29udGVudCBwIHtcclxuICBjb2xvcjogIzgxODk5MjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLnZpZGVvLWJ0biB7XHJcbiAgY29sb3I6ICM3MTZjODA7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC52aWRlby1idG46aG92ZXIgaSwgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLnZpZGVvLWJ0bjpmb2N1cyBpIHtcclxuICBjb2xvcjogIzEzYzRhMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLmJ0bjpob3Zlcjo6YWZ0ZXIsIC5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAuaGVyby1jb250ZW50IC5idG46aG92ZXI6OmJlZm9yZSB7XHJcbiAgYmFja2dyb3VuZDogIzEzYzRhMTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwgLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5IC5zaG93ID4gLmJ0bi1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZSB7XHJcbiAgYmFja2dyb3VuZDogIzEzYzRhMTtcclxuICBjb2xvcjogI2ZmZmZmZjtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5oZXJvLWNvbnRlbnQgLmJ0bi1wcmltYXJ5OmhvdmVyLCAubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLmhlcm8tY29udGVudCAuYnRuLXByaW1hcnk6Zm9jdXMge1xyXG4gIGJhY2tncm91bmQ6ICMxM2M0YTE7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAubWFya2V0aW5nLWltYWdlIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWcge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCgxKSB7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgdG9wOiAtNDVweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCgyKSB7XHJcbiAgbGVmdDogOTBweDtcclxuICB0b3A6IC0zMHB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDMpIHtcclxuICBsZWZ0OiA2MHB4O1xyXG4gIHRvcDogMTY1cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAubWFya2V0aW5nLWltYWdlIGltZzpudGgtY2hpbGQoNCkge1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IC0xNXB4O1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW46IDAgYXV0bztcclxuICB0b3A6IDE4NXB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDUpIHtcclxuICBib3R0b206IC01NXB4O1xyXG4gIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDYpIHtcclxuICBib3R0b206IC01MHB4O1xyXG4gIHJpZ2h0OiAxNDBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCg3KSB7XHJcbiAgbGVmdDogMTk4cHg7XHJcbiAgYm90dG9tOiAtNTVweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCg4KSB7XHJcbiAgbGVmdDogODBweDtcclxuICBib3R0b206IC00MHB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDkpIHtcclxuICByaWdodDogNjVweDtcclxuICBib3R0b206IDA7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZTNkIDRzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlM2QgNHMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bnRoLWNoaWxkKDEwKSB7XHJcbiAgbGVmdDogNTBweDtcclxuICB0b3A6IDg1cHg7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAubWFya2V0aW5nLWltYWdlIGltZzpudGgtY2hpbGQoMTEpIHtcclxuICByaWdodDogMTk1cHg7XHJcbiAgYm90dG9tOiAtNTVweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLm1hcmtldGluZy1ob21lIC5tYXJrZXRpbmctaW1hZ2UgaW1nOm50aC1jaGlsZCgxMikge1xyXG4gIHRvcDogMTAwcHg7XHJcbiAgcmlnaHQ6IC00cHg7XHJcbiAgbGVmdDogMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5tYXJrZXRpbmctaG9tZSAubWFya2V0aW5nLWltYWdlIGltZzpudGgtY2hpbGQoMTMpIHtcclxuICBsZWZ0OiA2MnB4O1xyXG4gIHJpZ2h0OiAwO1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0b3A6IDIwcHg7XHJcbiAgLXdlYmtpdC1hbmltYXRpb246IHJvdGF0ZTNkIDZzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgICAgICAgIGFuaW1hdGlvbjogcm90YXRlM2QgNnMgbGluZWFyIGluZmluaXRlO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIubWFya2V0aW5nLWhvbWUgLm1hcmtldGluZy1pbWFnZSBpbWc6bGFzdC1jaGlsZCB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLnByb2R1Y3QtaG9tZSAuc2hhcGU0IHtcclxuICBsZWZ0OiBhdXRvO1xyXG4gIHJpZ2h0OiAyMCU7XHJcbiAgdG9wOiAyNSU7XHJcbn1cclxuXHJcbi5tYWluLWJhbm5lci5zb2Z0d2FyZS1ob21lIC5idWJibGUtYW5pbWF0ZSAuY2lyY2xlIHtcclxuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIucGF5bWVudC1wcm9jZXNzaW5nLWhvbWUgLmNyZWF0aXZlLXNoYXBlIGltZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA1NXB4O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIuYm9vay1ob21lIHtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltZy9ib29rLWJhbm5lci5qcGcpO1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLmJvb2staG9tZTo6YmVmb3JlIHtcclxuICBjb250ZW50OiAnJztcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgbGVmdDogMDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6ICMwMDAwMDA7XHJcbiAgei1pbmRleDogLTE7XHJcbiAgb3BhY2l0eTogLjg3O1xyXG59XHJcblxyXG4ubWFpbi1iYW5uZXIuYm9vay1ob21lIC5oZXJvLWNvbnRlbnQgc3BhbiB7XHJcbiAgY29sb3I6ICNmZmZmZmY7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogMThweDtcclxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZmZmZmZmO1xyXG4gIHBhZGRpbmctbGVmdDogMTBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLmJvb2staG9tZSAuaGVyby1jb250ZW50IGVtLmlubHVjZGVib29rcyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgY29sb3I6ICNmMmYyZjI7XHJcbiAgbWFyZ2luLXRvcDogMjBweDtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLmJvb2staG9tZSAuYm9vay1pbWFnZSB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLm1haW4tYmFubmVyLmJvb2staG9tZSAuYm9vay1pbWFnZSBpbWcge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IC0yMTVweDtcclxuICByaWdodDogNDVweDtcclxufVxyXG5cclxuLnN0YXJ0dXAtaG9tZSAubWFpbi1iYW5uZXIge1xyXG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcclxuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi5zdGFydHVwLWhvbWUgLm1haW4tYmFubmVyOjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6ICcnO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwO1xyXG4gIHRvcDogMDtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogIzAwMDAwMDtcclxuICB6LWluZGV4OiAtMTtcclxuICBvcGFjaXR5OiAuOTU7XHJcbn0gKi9cclxuXHJcbi8qIEVuZCBTbGlkZXIgU3R5bGluZyAqL1xyXG5cclxuLyogU3RhcnQgQXBwIERvd25sb2FkIFNlY3Rpb24gKi9cclxuQGtleWZyYW1lcyBtb3ZlYm91bmNlIHtcclxuICAwJSB7XHJcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICB9XHJcbiAgNTAlIHtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XHJcbiAgfVxyXG4gIDEwMCUge1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XHJcbiAgfVxyXG59XHJcblxyXG4uYmctZ3JheSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZjVmZjtcclxufVxyXG5cclxuLmJnLXBpbmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YwZjc7XHJcbn1cclxuXHJcbi5wdGItMTAwIHtcclxuICBwYWRkaW5nLXRvcDogNTBweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNTBweDtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHotaW5kZXg6IDE7XHJcbiAgbWFyZ2luLXRvcDogMTIwcHg7XHJcbn1cclxuXHJcbi5hcHAtZG93bmxvYWQgLnNlY3Rpb24tdGl0bGUge1xyXG4gIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCAuc2VjdGlvbi10aXRsZSBoMiB7XHJcbiAgY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcclxuICBmb250LWZhbWlseTogXCJSaWZ0U29mdC1NZWRpdW1cIiwgXCJBbG1hcmFpLUJvbGRcIjtcclxuICBmb250LXNpemU6IDQycHg7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBtYXJnaW4tYm90dG9tOiAxMDBweDtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCAuc2VjdGlvbi10aXRsZSBoMjo6YWZ0ZXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5hcHAtZG93bmxvYWQgLnNlY3Rpb24tdGl0bGUgcCB7XHJcbiAgbWFyZ2luLWxlZnQ6IDA7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbiAgZm9udC1zaXplOiAxNXB4O1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgY29sb3I6ICMwMDAwMDA7XHJcbn1cclxuXHJcbi5hcHAtZG93bmxvYWQgLnNlY3Rpb24tdGl0bGUgLmRvd25sb2FkLWJ0biBhIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiA1MCU7XHJcbn1cclxuXHJcbi5hcHAtZG93bmxvYWQgLnNlY3Rpb24tdGl0bGUgLmRvd25sb2FkLWJ0biBhIGkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxMHB4O1xyXG4gIHRvcDogNTAlO1xyXG4gIGZvbnQtc2l6ZTogNDVweDtcclxuICBtYXJnaW4tdG9wOiAtMjJweDtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCAuc2VjdGlvbi10aXRsZSAuZG93bmxvYWQtYnRuIGEgLmdvb2dsZS1wbGF5LWljb24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxMHB4O1xyXG4gIHRvcDogNTAlO1xyXG4gIGZvbnQtc2l6ZTogNDVweDtcclxuICBtYXJnaW4tdG9wOiAtMjNweDtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCAuc2VjdGlvbi10aXRsZSAuZG93bmxvYWQtYnRuIGEgc3BhbiB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbn1cclxuXHJcbi5hcHAtZG93bmxvYWQgLnNlY3Rpb24tdGl0bGUgLmRvd25sb2FkLWJ0biBhOmhvdmVyLCAuYXBwLWRvd25sb2FkIC5zZWN0aW9uLXRpdGxlIC5kb3dubG9hZC1idG4gYTpmb2N1cyB7XHJcbiAgLyogYmFja2dyb3VuZDogIzc4NTQ5OTsgKi9cclxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcclxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCAuZG93bmxvYWQtaW1hZ2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICByaWdodDogMDtcclxuICB6LWluZGV4OiAtMTtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbiAgYm90dG9tOiAyOTVweDtcclxufVxyXG5cclxuLmFwcC1kb3dubG9hZCAuZG93bmxvYWQtaW1hZ2UgaW1nIHtcclxuICAtd2Via2l0LWFuaW1hdGlvbjogbW92ZWJvdW5jZSA1cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICAgICAgICBhbmltYXRpb246IG1vdmVib3VuY2UgNXMgbGluZWFyIGluZmluaXRlO1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuICB0b3A6IDA7XHJcbiAgd2lkdGg6IDQ0NXB4O1xyXG4gIG1hcmdpbjogMCBhdXRvO1xyXG59XHJcblxyXG4uZ29vZ2xlLXBsYXktaWNvbiB7XHJcbiAgZm9udC1zaXplOiA0NXB4O1xyXG59XHJcblxyXG4uYXBwbGUtc3RvcmUtaWNvbiB7XHJcbiAgZm9udC1zaXplOiA0NXB4O1xyXG59XHJcblxyXG4uYXBwLWRvd25sb2FkIC5zZWN0aW9uLXRpdGxlIC5hcmFiaWMge1xyXG4gIGZvbnQtZmFtaWx5OiBcIlJpZnRTb2Z0LU1lZGl1bVwiLCBcIkFsbWFyYWktQm9sZFwiICFpbXBvcnRhbnQ7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgZGlyZWN0aW9uOiBydGw7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIG1hcmdpbi10b3A6IDMwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5hcHAtZG93bmxvYWQgLmRvd25sb2FkLWltYWdlIGltZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB0b3A6IDAgIWltcG9ydGFudDtcclxuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAyMjBweDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICByaWdodDogMDtcclxuICB9XHJcbiAgLmFwcC1kb3dubG9hZCAuc2VjdGlvbi10aXRsZSAuZG93bmxvYWQtYnRuIGEge1xyXG4gICAgd2lkdGg6IDUwJTtcclxuICB9XHJcbiAgLmFwcC1kb3dubG9hZCAuc2VjdGlvbi10aXRsZSAuZG93bmxvYWQtYnRuIGEgaW1nIHtcclxuICB9XHJcblxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICByaWdodDogMDtcclxuICAgIGJvdHRvbTogMDtcclxuICAgIG1hcmdpbi10b3A6IDQ1cHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5hcHAtZG93bmxvYWQgLmRvd25sb2FkLWltYWdlIGltZyB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICB0b3A6IDAgIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiA0MTBweDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSB7XHJcbiAgICBib3R0b206IDIwMHB4O1xyXG4gIH1cclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSBpbWcge1xyXG4gICAgbGVmdDogLTEwcHg7XHJcbiAgICB0b3A6IDA7XHJcbiAgICB3aWR0aDogMzEwcHg7XHJcbiAgfVxyXG4gIC5hcHAtZG93bmxvYWQgLmRvd25sb2FkLWltYWdlIGltZzpsYXN0LWNoaWxkIHtcclxuICAgIGxlZnQ6IDE4MHB4O1xyXG4gICAgdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMzUwcHgpIHtcclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSB7XHJcbiAgICBib3R0b206IDE4MHB4O1xyXG4gIH1cclxuICAuYXBwLWRvd25sb2FkIC5kb3dubG9hZC1pbWFnZSBpbWcge1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiAzMTBweDtcclxuICB9XHJcbiAgLmFwcC1kb3dubG9hZCAuZG93bmxvYWQtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgbGVmdDogMjAwcHg7XHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEzNTFweCkge1xyXG4gIC5hcHAtZG93bmxvYWQge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XHJcbiAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDE5MTBweCkge1xyXG4gIC5hcHAtZG93bmxvYWQgLmRvd25sb2FkLWltYWdlIGltZyB7XHJcbiAgICBsZWZ0OiAtNzVweDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiA0ODVweDtcclxuICB9XHJcbiAgLmFwcC1kb3dubG9hZCAuZG93bmxvYWQtaW1hZ2UgaW1nOmxhc3QtY2hpbGQge1xyXG4gICAgbGVmdDogMjgwcHg7XHJcbiAgICB0b3A6IDA7XHJcbiAgfVxyXG59XHJcbi8qIEVuZCBBcHAgRG93bmxvYWQgU2VjdGlvbiAqLyJdfQ== */\"","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ \\\"findYourPerfectCoach\\\" | translate }}\\r\\n

\\r\\n

\\r\\n {{ \\\"headerBody\\\" | translate }}\\r\\n

\\r\\n \\r\\n \\r\\n {{ \\\"getStartedNow\\\" | translate }}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Coach\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

\\r\\n {{ \\\"whatIs\\\" | translate }} {{ \\\"coachYou\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"headerBody2\\\" | translate }}\\r\\n

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

{{ \\\"sameOfOurUniqueFeature\\\" | translate }}

\\r\\n\\r\\n \\r\\n
    \\r\\n
  • {{ \\\"feature1\\\" | translate }}
  • \\r\\n
  • {{ \\\"feature2\\\" | translate }}
  • \\r\\n
  • {{ \\\"feature3\\\" | translate }}
  • \\r\\n
  • {{ \\\"feature4\\\" | translate }}
  • \\r\\n
\\r\\n\\r\\n \\r\\n {{ \\\"aboutUs\\\" | translate }} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\\"Coach\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n {{ \\\"secure\\\" | translate }} \\r\\n

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

\\r\\n {{ \\\"serviceText\\\" | translate }}\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\\"Coach\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n {{ \\\"scalable\\\" | translate }} \\r\\n

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

\\r\\n {{ \\\"scalableTextNote\\\" | translate }}\\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\\"Coach\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n {{ \\\"flexible\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"flexibleTextNote\\\" | translate }}\\r\\n

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

{{ \\\"downloadThisAppHead\\\" | translate }}

\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\\"Coach\\r\\n \\\"Coach\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"Coach\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n

\\r\\n {{ \\\"meetOurProfessionals\\\" | translate }}\\r\\n {{ \\\"coachesUpper\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"meetOurProfessionalsNote\\\" | translate }}\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\\"Coach\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

\\r\\n \\r\\n {{ coach.firstName + \\\" \\\" + coach.lastName }}\\r\\n \\r\\n

\\r\\n \\r\\n {{ coach?.speciality }}\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Not Rated Yet\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n {{ \\\"price\\\" | translate }}\\r\\n \\r\\n \\r\\n {{ coach.price + \\\" $ \\\" }} / {{ \\\"hour\\\" | translate }}  \\r\\n \\r\\n  \\r\\n \\r\\n {{ \\\"free\\\" | translate }}\\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n {{ \\\"languages\\\" | translate }}\\r\\n \\r\\n \\r\\n {{language.englishName}}{{(coach.languages && coach.languages.length && coach.languages.length > 1\\r\\n &&\\r\\n i !==\\r\\n (coach.languages.length -1)) ? ', ' : ''}}\\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n {{ isArabic() ? inter?.name : inter?.name }}\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n {{ isArabic() ? \\\"لا شيء\\\" : \\\"None\\\" }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ \\\"viewProfile\\\" | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n

\\r\\n {{ \\\"exploreOur\\\" | translate }} {{ \\\"course\\\" | translate }} \\r\\n

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

\\r\\n {{ \\\"exploreOurNote\\\" | translate }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ \\\"exploreOur\\\" | translate }} {{ \\\"blogs\\\" | translate }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\\"Coach\\r\\n\\r\\n
\\r\\n \\r\\n {{ blog.title }}\\r\\n \\r\\n\\r\\n \\r\\n {{ blog.title }}\\r\\n \\r\\n\\r\\n

\\r\\n \\r\\n \\r\\n {{ blog.createdAt | date: 'longDate' }}\\r\\n \\r\\n \\r\\n {{ blog?.createdBy }}\\r\\n

\\r\\n

\\r\\n \\r\\n \\r\\n {{ blog.createdAt | date: 'longDate' }}\\r\\n \\r\\n\\r\\n \\r\\n {{ blog?.createdBy }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
0\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n

\\r\\n {{ \\\"whatMakeUs\\\" | translate }} {{ \\\"unique\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"whatMakeUsNote\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"weWouldLoveToHear\\\" | translate }}\\r\\n {{ \\\"getInTouch\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"getInTouchNote\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"companyLocation\\\" | translate }}\\r\\n

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

\\r\\n {{ \\\"companyPOBox\\\" | translate }}\\r\\n

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

\\r\\n hello@coachyou.io\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ \\\"nameIsRequired\\\" | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ \\\"emailIsRequired\\\" | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ \\\"phoneNumberIsRequired\\\" | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ \\\"subjectIsRequired\\\" | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ \\\"messageIsRequired\\\" | translate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","import { SessionService } from './../../../../services/global_services/session.service';\r\nimport { environment } from './../../../../../environments/environment';\r\nimport { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from \"@angular/core\"; \r\nimport { DomSanitizer, Title } from \"@angular/platform-browser\"; \r\nimport { FormBuilder, Validators, FormGroup } from \"@angular/forms\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Route, Router } from \"@angular/router\";\r\nimport { NgwWowService } from \"ngx-wow\";\r\nimport { DeviceDetectorService } from \"ngx-device-detector\";\r\nimport { DateHelpers } from \"src/app/common/helpers\";\r\nimport { CourseLevel } from \"src/app/common/enums\";\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { TranslationService } from \"src/app/services/translation.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { Languages } from \"src/app/common/languages\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"app-landing-page\",\r\n templateUrl: \"./landing-page.component.html\",\r\n styleUrls: [\"./landing-page.component.css\"],\r\n})\r\nexport class LandingPageComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild('contactUs', { static: false }) contactUs: ElementRef;\r\n\r\n baseUrl = environment.baseUrl;\r\n _currentUrl: string = '';\r\n\r\n public Quotes;\r\n public ActiveQuote;\r\n public Courses;\r\n public Blogs;\r\n private wowSubscription: Subscription;\r\n public PopularCoaches;\r\n\r\n private pipe = null;\r\n form: FormGroup;\r\n submitted: boolean = false;\r\n IsMobileView = false;\r\n IsWrapped: boolean = true;\r\n WrappedCoachId: number;\r\n languages = Languages;\r\n\r\n constructor( \r\n private _sanitizer: DomSanitizer, \r\n private formBuilder: FormBuilder,\r\n private toastService: ToastrService,\r\n private wowService: NgwWowService,\r\n public translate: TranslateService,\r\n private _translationService: TranslationService,\r\n private deviceService: DeviceDetectorService,\r\n private titleService: Title,\r\n private sessionService: SessionService,\r\n private route: Router,\r\n private http: HttpClient\r\n ) {\r\n this.titleService.setTitle(\"Build your career with coach you | Coach you \")\r\n translate.use(\r\n localStorage.getItem(\"lang\") !== null ||\r\n localStorage.getItem(\"lang\") !== null\r\n ? localStorage.getItem(\"lang\")\r\n : \"ar\"\r\n );\r\n this._currentUrl = this.route.url;\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this._currentUrl == '/#contactUs') {\r\n setTimeout(() => {\r\n this.contactUs.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'end', inline: 'nearest' });\r\n }, 1000);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.wowService.init();\r\n // you can subscribe to WOW observable to react when an element is revealed\r\n this.wowSubscription = this.wowService.itemRevealed$.subscribe(\r\n (item: HTMLElement) => {\r\n // do whatever you want with revealed element\r\n }\r\n );\r\n\r\n if (location.href.indexOf(\"#\") > -1) {\r\n let hashIndex = location.href.indexOf(\"#\");\r\n if (location.href.slice(hashIndex) == \"#contactUs\") {\r\n $('html, body').animate({ scrollTop: $(\"#contactUs\").offset().top + 1700 }, 'slow');\r\n }\r\n }\r\n\r\n this.getPopularCoaches();\r\n\r\n // this.coachesService.GetPopularCoaches().subscribe((response) => {\r\n // response.result.forEach((coach) => {\r\n // coach.languages = coach.languages.map(\r\n // (item) =>\r\n // this.languages.filter(\r\n // (language) => language.id == item.language_id\r\n // )[0]\r\n // );\r\n // });\r\n // this.PopularCoaches = response.result;\r\n // });\r\n\r\n // populate quotes \r\n // this.miscServices.GetUsersQuotes().subscribe((response) => {\r\n // this.Quotes = response.result;\r\n // this.ActiveQuote = this.Quotes[0];\r\n // this._initializeQuotes();\r\n // this._initializeBannerSlider();\r\n // });\r\n\r\n // populate courses\r\n // this.coursesService\r\n // .GetCourses(null, null, { page: 0, rows: 4, totalCount: 4 })\r\n // .subscribe((response) => {\r\n // this.Courses = response.result;\r\n // this._initializeCoursesSlider();\r\n // });\r\n\r\n // populate blogs\r\n // this.blogsService.GetPinnedBlogs().subscribe((response) => {\r\n // this.Blogs = response.result;\r\n // });\r\n\r\n\r\n\r\n // contact form\r\n this.form = this.formBuilder.group({\r\n contact_name: [\"\"],\r\n contact_email: [\"\", [Validators.required]],\r\n contact_phoneNumber: [\"\"],\r\n contact_message: [\"\", [Validators.required]],\r\n contact_subject: [\"\"],\r\n });\r\n }\r\n\r\n\r\n\r\n getPopularCoaches() {\r\n this.http.post(environment.baseUrl + \"CoachRequest/search\", { pageSize: 3, pageNumber: 1 }).subscribe(res => {\r\n if (res.errorCode == 0) {\r\n this.PopularCoaches = res.data.data;\r\n }\r\n })\r\n this.http.get(environment.baseUrl + \"Blog?PageSize=3&PageNumber=1\", {\r\n headers: new HttpHeaders({ \"Accept-Language\": localStorage.getItem(\"lang\") })\r\n }).subscribe(res => {\r\n this.Blogs = res.data.data;\r\n })\r\n }\r\n\r\n\r\n getImageUrl(url) {\r\n return url ? environment.baseUrl + \"File/get\" + url : \"assets/img/noImageAvailable.png\";\r\n }\r\n\r\n getBackgroundUrl(image) {\r\n return this._sanitizer.bypassSecurityTrustStyle(`url(${image})`);\r\n }\r\n\r\n changeQuote(index) {\r\n this.ActiveQuote = this.Quotes[index];\r\n }\r\n\r\n DateOnly(date) {\r\n if (this.pipe === null) {\r\n this.pipe = new DatePipe(\"en-US\"); // Use your own locale\r\n }\r\n const myFormattedDate = this.pipe.transform(new Date(date), \"short\");\r\n return myFormattedDate;\r\n }\r\n\r\n /** contact form **/\r\n\r\n // convenience getter for easy access to form fields\r\n get f() {\r\n return this.form.controls;\r\n }\r\n\r\n async onContactSubmit() {\r\n this.submitted = true;\r\n\r\n\r\n if (this.form.invalid) return\r\n\r\n let req = new FormData();\r\n\r\n req.append(\"Email\", this.form.get(\"contact_email\").value);\r\n req.append(\"PhoneNumber\", this.form.get(\"contact_phoneNumber\").value);\r\n req.append(\"Message\", this.form.get(\"contact_message\").value);\r\n req.append(\"FullName\", this.form.get(\"contact_name\").value);\r\n req.append(\"Subject\", this.form.get(\"contact_subject\").value);\r\n req.append(\"ApplicationType\", \"1\");\r\n\r\n this.http.post(environment.baseUrl + \"contactUs\", req).subscribe(res => {\r\n if (res.errorCode == 0) {\r\n this.toastService.success(\"Success\")\r\n this.form.reset();\r\n this.submitted = false;\r\n } else {\r\n console.log(res.error);\r\n this.toastService.error(res.error);\r\n }\r\n })\r\n }\r\n\r\n isArabic() {\r\n var lang = this._translationService.getLanguage();\r\n if (lang == \"ar\") return true;\r\n\r\n return false;\r\n }\r\n GetCourseLevelText(courseLevel) {\r\n let level = CourseLevel[courseLevel];\r\n return level.toString();\r\n }\r\n\r\n public TimeOnly(date) {\r\n let newDate;\r\n if (typeof date === \"string\") {\r\n newDate = date\r\n .replace(/-/g, \"/\")\r\n .replace(/T/g, \" \")\r\n .substring(0, date.length - 4);\r\n }\r\n return DateHelpers.TimeFormatted(newDate ? new Date(newDate) : date);\r\n }\r\n\r\n public ShortendedDate(date) {\r\n date = new Date(date);\r\n return DateHelpers.FormatDateMonthShortented(date);\r\n }\r\n\r\n private _initializeCoursesSlider() {\r\n $(function () {\r\n //Course Carousel\r\n var Course = $(\".Course .owl-carousel\");\r\n Course.owlCarousel({\r\n loop: true,\r\n navText: [\"\", \"\"],\r\n margin: 20,\r\n nav: false,\r\n dots: false,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n },\r\n 600: {\r\n items: 1,\r\n },\r\n 992: {\r\n items: 2,\r\n },\r\n },\r\n });\r\n\r\n //Course Carousel Next/Prev Custom Button\r\n $(\".Course .navigation.next\").on(\"click\", function () {\r\n Course.trigger(\"next.owl.carousel\");\r\n });\r\n $(\".Course .navigation.prev\").on(\"click\", function () {\r\n Course.trigger(\"prev.owl.carousel\");\r\n });\r\n\r\n $(\".Course .owl-stage-outer\").css({ height: \"500px\" });\r\n });\r\n }\r\n\r\n private _initializeQuotes() {\r\n $(function () {\r\n //Testimonials Carousel Next/Prev Button\r\n var testimonials = $(\".testimonials .owl-carousel\");\r\n testimonials.owlCarousel({\r\n loop: true,\r\n navText: [\"\", \"\"],\r\n margin: 20,\r\n nav: false,\r\n dots: false,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n },\r\n 600: {\r\n items: 1,\r\n },\r\n 992: {\r\n items: 2,\r\n },\r\n },\r\n });\r\n\r\n //Testimonials Carousel Next/Prev Custom Button\r\n $(\".testimonials .navigation.next\").on(\"click\", function () {\r\n testimonials.trigger(\"next.owl.carousel\");\r\n });\r\n\r\n $(\".testimonials .navigation.prev\").on(\"click\", function () {\r\n testimonials.trigger(\"prev.owl.carousel\");\r\n });\r\n\r\n $(\".testimonials .owl-stage-outer\").css(\"height\", \"390px\");\r\n });\r\n }\r\n\r\n private _initializeBannerSlider() {\r\n $('.home-slides').owlCarousel({\r\n items: 1,\r\n loop: true,\r\n autoplay: true,\r\n nav: true,\r\n responsiveClass: true,\r\n dots: false,\r\n autoplayHoverPause: true,\r\n mouseDrag: true,\r\n navText: [\r\n \"\",\r\n \"\"\r\n ],\r\n });\r\n $(\".home-slides\").on(\"translate.owl.carousel\", function () {\r\n $(\".main-banner h1\").removeClass(\"animated fadeInUp\").css(\"opacity\", \"0\");\r\n $(\".main-banner p\").removeClass(\"animated zoomIn\").css(\"opacity\", \"0\");\r\n $(\".main-banner .btn, .main-banner .video-btn\").removeClass(\"animated fadeInDown\").css(\"opacity\", \"0\");\r\n $(\".main-banner .startup-image\").removeClass(\"animated zoomIn\").css(\"opacity\", \"0\");\r\n });\r\n $(\".home-slides\").on(\"translated.owl.carousel\", function () {\r\n $(\".main-banner h1\").addClass(\"animated fadeInUp\").css(\"opacity\", \"1\");\r\n $(\".main-banner p\").addClass(\"animated zoomIn\").css(\"opacity\", \"1\");\r\n $(\".main-banner .btn, .main-banner .video-btn\").addClass(\"animated fadeInDown\").css(\"opacity\", \"1\");\r\n $(\".main-banner .startup-image\").addClass(\"animated zoomIn\").css(\"opacity\", \"1\");\r\n });\r\n }\r\n\r\n\r\n checkImageUrl(event, course = null) {\r\n // if (course) {\r\n // console.log(\"TEST\");\r\n // event.srcElement.src =\r\n // \"https://coachyou.co/uploads/system_images/no_image_available.png\";\r\n // } else {\r\n // console.log(\"Error\");\r\n // event.srcElement.src =\r\n // \"https://coachyou.co/uploads/system_images/user.png\";\r\n // }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LandingPageComponent } from './components/landing-page/landing-page.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"\",\r\n component: LandingPageComponent\r\n },\r\n {\r\n path: \"landing\",\r\n component: LandingPageComponent,\r\n },\r\n {\r\n path: \"home\",\r\n component: LandingPageComponent,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class HomeRoutingModule { }\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\"; \r\nimport { CarouselModule } from \"ngx-owl-carousel-o\"; \r\nimport { SharedModule } from \"src/app/sharedModule/shared.module\"; \r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { LandingPageComponent } from \"./components/landing-page/landing-page.component\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\nimport { RatingModule } from \"ng-starrating\"; \r\nimport { HomeRoutingModule } from \"./home-routing.module\";\r\n\r\n@NgModule({\r\n declarations: [ \r\n LandingPageComponent, \r\n ],\r\n imports: [\r\n CommonModule,\r\n CarouselModule,\r\n HomeRoutingModule,\r\n SharedModule,\r\n FormsModule,\r\n TranslateModule,\r\n ReactiveFormsModule,\r\n RatingModule, \r\n ]\r\n})\r\nexport class HomeModule {}\r\n"],"sourceRoot":""}